js学习随笔记录

从决定转前端开始,就想着写一些东西,记录自己的学习成果,但还由于自己,一直以来都不喜欢记录,所以一直拖到了现在。

1、typeof:检测给定的数据类型:可能返回的字符串有:underfined、string、boolean、number、object、function。

2、jQuery插件可以使用外部的函数和变量,但是这些函数和变量需要进行额外的隐藏保护,一单被外界改写,就有可能破坏jQuery插件的功能,可以使用一个闭包技术构造一个匿名函数,把jQuery插件方法及其私有函数和变量放到该函数中。

(function($){

//插件的方法及其私有的函数变量

})(jQery);

3、this.length>>>0:表示的意思是,如果length没有定义就取0;

4、javascript没有重载,如果定义两个名字相同的函数,则改名字只属于后定义的函数。

5、对于引用类型,我们可以为他添加属性和方法,也可以改变和删除其属性和方法。如:

var person=new object();

person.name="aaa";

alert(person.name);  //"aaa"

但是我们不能给基本类型添加属性。

var name="aaa";

name.age=27;

alert(name.age);  //undefined

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>验证Valid ----placeholder</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <style>
    ul ,li input,label,textarea,div{
        padding:0px;
        margin: 0px;
    }
    li{
        list-style: none;
        margin-bottom: 10px;
    }
    label{
        width: 100px;
        display: inline-block;
    }
    span.emptyhint {color:#999;position:absolute;padding:3px;}
    </style>
</head>
<body>
    <div id="doc3">
        <div id="bd" >
            <div class="section-ctn">
                <ul>
                    <li>
                        <label class="k">订单主人:</label>
                        <input type="text" placeholder="请填写订单主人" >
                    </li>
                    <li>
                        <label class="k">订单号:</label>
                        <input type="text" placeholder="请填写订单号">
                    </li>
                    <li>
                        <label class="k">备注:</label>
                        <textarea type="text" placeholder="请填写备注"></textarea>
                    </li>
                     <li>
                        <label class="k">邮箱:</label>
                        <textarea type="text" placeholder="请填写邮箱"></textarea>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</body>
<script>
function initPlaceHolders(){
    if('placeholder' in document.createElement('input')){ //如果浏览器原生支持placeholder
        return ;
    }
    function target (e){
        var e = e||window.event;
        return e.target||e.srcElement;
    };
    function _getEmptyHintEl(el){
        var hintEl=el.hintEl;
        return hintEl && g(hintEl);
    };
    function blurFn(e){
        var el=target(e);
        if(!el || el.tagName !='INPUT' && el.tagName !='TEXTAREA') return;//IE下,onfocusin会在div等元素触发 
        var    emptyHintEl=el.__emptyHintEl;
        if(emptyHintEl){
            //clearTimeout(el.__placeholderTimer||0);
            //el.__placeholderTimer=setTimeout(function(){//在360浏览器下,autocomplete会先blur再change
                if(el.value) emptyHintEl.style.display='none';
                else emptyHintEl.style.display='';
            //},600);
        }
    };
    function focusFn(e){
        var el=target(e);
        if(!el || el.tagName !='INPUT' && el.tagName !='TEXTAREA') return;//IE下,onfocusin会在div等元素触发 
        var emptyHintEl=el.__emptyHintEl;
        if(emptyHintEl){
            //clearTimeout(el.__placeholderTimer||0);
            emptyHintEl.style.display='none';
        }
    };
    if(document.addEventListener){//ie
        document.addEventListener('focus',focusFn, true);
        document.addEventListener('blur', blurFn, true);
    }
    else{
        document.attachEvent('onfocusin',focusFn);
        document.attachEvent('onfocusout',blurFn);
    }

    var elss=[document.getElementsByTagName('input'),document.getElementsByTagName('textarea')];
    for(var n=0;n<2;n++){
        var els=elss[n];
        for(var i =0;i<els.length;i++){
            var el=els[i];
            var placeholder=el.getAttribute('placeholder'),
                emptyHintEl=el.__emptyHintEl;
            if(placeholder && !emptyHintEl){
                emptyHintEl=document.createElement('span');
                emptyHintEl.innerHTML=placeholder;
                emptyHintEl.className='emptyhint';
                emptyHintEl.onclick=function (el){return function(){try{el.focus();}catch(ex){}}}(el);
                if(el.value) emptyHintEl.style.display='none';
                el.parentNode.insertBefore(emptyHintEl,el);
                el.__emptyHintEl=emptyHintEl;
            }
        }
    }
}

initPlaceHolders();
</script>
</html>
posted @ 2014-04-04 16:24  fangdx  阅读(168)  评论(0编辑  收藏  举报