jquery移除button的inline onclick事件(已測(cè)試及兼容瀏覽器)
更新時(shí)間:2013年01月25日 15:06:44 作者:
這種方法在Google Chrome下正常工作,但是在IE的兼容模式下會(huì)馬上調(diào)用reclick方法,這不是我們想要的效果;為了解決這個(gè)問(wèn)題,我們可以換個(gè)思路,就是延遲綁定click事件
inline onclick代碼如下:
復(fù)制代碼 代碼如下:
<input type="button" id="btnOK" name="" value="確定" onclick="btnOKClick();" />
btnOKClick的代碼:
復(fù)制代碼 代碼如下:
function btnOKClick() {
alert("btnOK Clicked");
}
現(xiàn)在要在點(diǎn)擊按鈕以后,移除onclick事件,并為按鈕綁定一個(gè)新的click事件。在第二次點(diǎn)擊時(shí)候,就開(kāi)始執(zhí)行第二個(gè)事件處理函數(shù),第二個(gè)處理函數(shù)的代碼:
reclick的代碼:
復(fù)制代碼 代碼如下:
function reclick() {
alert('reclick');
}
[\s\S ]*\n
思路:在btnOKClick中移除onclick,然后添加新的綁定,代碼如下:
復(fù)制代碼 代碼如下:
$('#btnOK').attr('onclick', '').bind('click', function () { reclick(); });
加上這段代碼后的btnOKClick方法如下:
復(fù)制代碼 代碼如下:
function btnOKClick() {
alert("btnOK Clicked");
$('#btnOK').attr('onclick', '').bind('click', function () { reclick(); });
}
這種方法在Google Chrome下正常工作,但是在IE的兼容模式下會(huì)馬上調(diào)用reclick方法,這不是我們想要的效果。
出現(xiàn)這種效果的原因貌似是因?yàn)閛nclick執(zhí)行完了以后,IE回去查看是否有綁定在click上的handler,結(jié)構(gòu)是有的,于是就馬上執(zhí)行了。
為了解決這個(gè)問(wèn)題,我們可以換個(gè)思路,就是延遲綁定click事件。具體的代碼如下:
復(fù)制代碼 代碼如下:
function btnOKClick() {
alert("btnOK Clicked");
setTimeout(function () {
$('#btnOK').attr('onclick', '').bind('click', function () { reclick(); });
}, 1);
}
這里使用了setTimeout定時(shí)器,在定時(shí)器觸發(fā)以后,才執(zhí)行移除onclick屬性,綁定click handler的代碼。
經(jīng)測(cè)試,在IE9的兼容模式和非兼容模式下都可以正常運(yùn)行;Google Chrome也正常運(yùn)行。
您可能感興趣的文章:
- jquery動(dòng)態(tài)改變onclick屬性導(dǎo)致失效的問(wèn)題解決方法
- 使用jQuery的attr方法來(lái)修改onclick值
- jquery應(yīng)該如何來(lái)設(shè)置改變按鈕input的onclick事件
- jquery單選框radio綁定click事件實(shí)現(xiàn)方法
- JQuery調(diào)用綁定click事件的3種寫(xiě)法
- jQuery中click事件的定義和用法
- Jquery為DIV添加click事件的簡(jiǎn)單實(shí)例
- jQuery取消特定的click事件
- jQuery綁定事件方法及區(qū)別(bind,click,on,live,one)
- jQuery動(dòng)態(tài)移除與增加onclick屬性的方法詳解
相關(guān)文章
JQuery EasyUI 對(duì)話(huà)框的使用方法
jQuery EasyUI 對(duì)話(huà)框(Dialog)用法與EasyUI的窗口用法極為相似,最終的效果圖也只與窗口的效果圖差幾個(gè)按鈕2010-10-10
jquery實(shí)現(xiàn)吸頂導(dǎo)航效果
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)吸頂導(dǎo)航效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01
jQuery EasyUI API 中文文檔 - Panel面板
jQuery EasyUI API 中文文檔 - Panel面板,使用jQuery EasyUI的朋友可以參考下。2011-09-09
jQuery實(shí)現(xiàn)倒計(jì)時(shí)功能 jQuery實(shí)現(xiàn)計(jì)時(shí)器功能
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)倒計(jì)時(shí)功能,jQuery實(shí)現(xiàn)計(jì)時(shí)器功能的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
struts2 jquery 打造無(wú)限層次的樹(shù)
需要:Struts2 , jquery樹(shù)插件 模擬數(shù)據(jù)庫(kù)數(shù)據(jù):每行數(shù)據(jù)包括--自己ID,自己內(nèi)容,父親ID2009-10-10
基于jQuery實(shí)現(xiàn)表格內(nèi)容的篩選功能
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)表格內(nèi)容的篩選功能的相關(guān)資料,需要的朋友可以參考下2016-08-08
JQuery異步加載無(wú)限下拉框級(jí)聯(lián)功能實(shí)現(xiàn)示例
這篇文章主要介紹了JQuery異步加載無(wú)限下拉框級(jí)聯(lián)功能的實(shí)現(xiàn),需要的朋友可以參考下2014-02-02

