javascript 常用積累

一、JS動畫與動作不一致解決:


if(!$( "#handle").is(":animated")){
    //判斷元素是否處于動畫狀態
}

二、停止事件冒泡


event.stopPropagation();
- 禁止JS報錯
    window.onerror = function(){
        return true ; 
}
try {
/*try to do*/
} catch(e){
/*do this if try error */
}

三、查看JS對象屬性


var res = '' ; 
var obj = eval( obj );
    for( var p in eval( obj ) ){
        var prop = p + ':' + obj[p] + '\n' ; 
        res += prop ; 
    }
    alert( res );

四、頁面刷新時禁用提交按鈕


window.onbeforeunload = function(){
    $(':submit').attr('disabled',true);
}

注意Opera

瀏覽器不支持,其他瀏覽器避免在同一頁面中使用

"javascrpt:"

等偽協議

五、獲取事件


var getEvent = function(){
    var ieEvent = window.event ; 
    var ffEvent = arguments.callee.caller.arguments[0] ; 
    //arguments.callee                      當前執行函數
    //arguments.callee.caller               當前執行函數的調用者
    //arguments.callee.caller.arguments[0]  當前函數調用者的第一個參數
    var e = ieEvent || ffEvent ; 
    return e ;
}

六、獲取鍵盤碼


var getKCode = function(){
        var ieEvent = window.event ; 
        var ffEvent = arguments.callee.caller.arguments[0] ; 
        var e = ieEvent || ffEvent ; 
        var kCode = e.keyCode || e.which ;
        return kCode ;
    }

七、 鼠標滑入/滑出樣式切換


$("div").on("mouseover mouseout", function(){
    $(this).toggleClass("over");
 });

八、點擊鼠標,顯示/隱藏切換


$("#panel h5.head").toggle(function(){
    $(this).toggleClass("highlight");
    $(this).next().toggle();
},function(){
    $(this).toggleClass("highlight");
    $(this).next().toggle();
});

九、JS 調試


console.log() ;         //打印變量
console.dir() ;         //打印對象
console.dirxml() ;      //打印節點
console.trace() ;       //打印函數調用軌跡
window.document.title = str;

十、為子元素集合綁定事件


$("div").delegate("button","click",function(){
    $("p").slideToggle();
});

十一、自定義IE瀏覽器渲染方式(解決IE10JS或插件失效):


如果安裝了Chrome內核,則使用Chrome內核來渲染頁面[chrome=1],如果未安裝,則使用最高版本的IE內核進行渲染[IE=edge]:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

十二、注冊事件


// 標準瀏覽器
form1.addEventListener('submit', function(e){
    e.preventDefault();     //阻止瀏覽器默認動作
    e.stopPropagation();        //阻止事件流產生
});
// IE8及更早版本IE瀏覽器
form1.attachEvent('submit', function(){
    event.cancelBubble = true; //阻止瀏覽器默認動作--IE8及更早版本IE瀏覽器
    event.returnValue = false; //阻止事件流產生--IE8及更早版本IE瀏覽器
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,287評論 25 708
  • @轉自GitHub 介紹js的基本數據類型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou閱讀 1,200評論 0 0
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進階之旅閱讀 114,796評論 24 450
  • 籽料是和田玉中的精品,產量少,品質高,歷代藏家所青睞。但如今市場上造假技術橫生,魚龍混雜,令人難辨真假,尤其新手朋...
    0547925b44d9閱讀 463評論 0 0