一、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
瀏覽器渲染方式(解決IE10
下JS
或插件失效):
如果安裝了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瀏覽器
}