首頁 >web前端 >js教程 >jquery移除button的inline onclick事件(已測試及相容瀏覽器)_jquery

jquery移除button的inline onclick事件(已測試及相容瀏覽器)_jquery

WBOY
WBOY原創
2016-05-16 17:42:491103瀏覽

inline onclick程式碼如下:

複製程式碼


程式碼


複製碼🎜>
複製程式碼


程式碼如下:

function btnOKClick() {> "btnOK Clicked");
}
現在要在點擊按鈕以後,移除onclick事件,並為按鈕綁定一個新的click事件。第二次點擊時候,就開始執行第二個事件處理函數,第二個處理函數的程式碼:
reclick的程式碼
複製程式碼


程式碼如下:


function reclick() {
alert('reclick');
} [sS ]*n
複製程式碼


程式碼如下:


$('#btnOK').attr('onclick', '').bind('click', function () { reclick(); }); 複製代碼


程式碼如下:


function btnOKClick() {
alert("btnOK Clicked");
$('#btnOK').attlickr(tnOKonc' , '').bind('click', function () { reclick(); });
}


這種方法在Google Chrome下正常工作,但是在IE的兼容模式下會馬上呼叫reclick方法,這不是我們想要的效果。
出現這種效果的原因貌似是因為onclick執行完了以後,IE回去查看是否有綁定在click上的handler,結構是有的,於是就馬上執行了。 為了解決這個問題,我們可以換個思路,就是延遲綁定click事件。具體的程式碼如下:
複製程式碼


程式碼如下:


function btnd >alert("btnOK Clicked");
setTimeout(function () {
$('#btnOK').attr('onclick', '').bind('click', function () { reclick (); });
}, 1);
}
這裡使用了setTimeout定時器,在定時器觸發以後,才執行移除onclick屬性,綁定click handler的代碼。 經測試,在IE9的相容模式和非相容模式下都可以正常運作;Google Chrome也正常運作。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn