Js常用函数和问题

Js常用函数和问题

函数

getCurKeyCode

=====================

     得到输入的keyCod

=====================e 

 

$(document).on("keyup", "input", function(evt){

    console.log(evt.keyCode)

})  

 

* 在微信中浏览器不支持keyCode,得到的keyCode都等于0;

getCaretPosition

====================

得到当前输入位置

====================

 

function doGetCaretPosition (oField) {

    // Initialize

    var iCaretPos = 0;

    // IE Support

    if (document.selection) {

    // Set focus on the element

        oField.focus();

    // To get cursor position, get empty selection range

        var oSel = document.selection.createRange();

    // Move selection start to 0 position

        oSel.moveStart('character', -oField.value.length);

    // The caret position is selection length

        iCaretPos = oSel.text.length;

    }

    // Firefox support

    else if (oField.selectionStart || oField.selectionStart == '0') {

        iCaretPos = oField.selectionStart;

        if (isNaN(iCaretPos)) {

            iCaretPos = 0 

        }

    }       

    return iCaretPos;

}

getOrSetCookie

 function getOrSetCookie(){

    var fn = $.fn.cookie;

    if ($.hasOwnProperty("cookie")) {

        fn = $.cookie;

    }

    if(arguments.length == 1) {

        return fn(name);

    }

    fn(name, value, expire);

 }

 * 兼容jquery 或者 zepto-cookie的cookie处理

Q&A

    1. js变量一直变化?
      js中变量是引用,如果一个变量,则如果别的地方改变了这个值,也会发生改变。只有 + 或者 concat才会进行深度复制;
    2. js事件绑定的先后顺序?
      如果一个dom元素上绑定多个监听事件,则会根据绑定的先后顺序进行函数处理。当然有的地方不是,存在addEvent和addEventListener,目前主要是先绑定先处理;在react上,首先会处理id,然后处理虚拟元素上的onClick。
    3. cookie 需要设置path吗?会感染吗?
      设置cookie时,默认如果不写expires,则expires为session,不断开连接;而默认不写path,则为当前主目录,如果是/m 或者 /。 删除cookie时,path必须一致,否则无法删除cookie。 $.cookie("name","", {expires:-1, path:"/"}); $.cookie("name","ok",{path:"/"})
    4. js中为什么有时候用that来替代this指针?
      如何在事件响应中,如 $('#inputPhone').onClick(function(){ 当前的this指针指向$('#inputPhone),即该jquery对象 }) 如果该处理在一个封装体内,则如果需要调用封装体的函数,则需要用that来提前替代this。
posted @ 2016-03-04 16:43  purejade  阅读(223)  评论(0编辑  收藏  举报