zoukankan      html  css  js  c++  java
  • 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{
             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>
  • 相关阅读:
    浏览器低延时播放监控摄像头视频(EasyNVR播放FLV视频流)
    RTSP/Onvif摄像机在做H5无插件直播中遇到对接海康摄像机发送OPTIONS心跳的问题
    EasyDarwin系列互联网视频直播录像方案的选择
    EasyNVR配置需求
    EasyNVR硬件云终端与EasyNVR综合对比
    EasyNVR使用过程中问题的自我排查设备不在线问题自我排查检测
    EasyNVR在Linux系统下将录像文件与EasyNVR运行分离
    EasyNVR硬件云终端使用说明(问题的自我排查与解决)
    EasyNVR内网接入网关+EasyNVS云端管理平台,组件起一套轻量级类似于萤石云的解决方案
    EasyNVR支持的设备接入类型以及关于国标设备是否支持接入EasyNVR
  • 原文地址:https://www.cnblogs.com/fangdx/p/3645398.html
Copyright © 2011-2022 走看看