多次注冊(cè)事件會(huì)導(dǎo)致一個(gè)事件被觸發(fā)多次的解決方法
更新時(shí)間:2013年08月12日 11:01:43 作者:
一個(gè)JavaScript邏輯,會(huì)自動(dòng)綁定函數(shù)到按鈕的click事件,但是這段代碼會(huì)反復(fù)注冊(cè)事件,具體的解決方法如下,感興趣的朋友可以參考下
一個(gè)JavaScript邏輯,會(huì)自動(dòng)綁定函數(shù)到按鈕的click事件,但是這段代碼會(huì)反復(fù)注冊(cè)事件。這樣依賴onNext函數(shù)會(huì)在點(diǎn)擊一次按鈕的時(shí)候多次觸發(fā)。
這是JQuery內(nèi)部沒(méi)有判斷是否綁定多次,懷疑其內(nèi)部用了數(shù)組保存事件函數(shù),而且沒(méi)有去重。
下面的代碼預(yù)防了這個(gè)問(wèn)題。解決方案很簡(jiǎn)單。
if (!this.hasPageBarEvents) {
$(".pNext").on("click", this, this.onNext);
this.hasPageBarEvents = true;
}
以后用到JQuery要小心這個(gè)特性。
這是JQuery內(nèi)部沒(méi)有判斷是否綁定多次,懷疑其內(nèi)部用了數(shù)組保存事件函數(shù),而且沒(méi)有去重。
下面的代碼預(yù)防了這個(gè)問(wèn)題。解決方案很簡(jiǎn)單。
復(fù)制代碼 代碼如下:
if (!this.hasPageBarEvents) {
$(".pNext").on("click", this, this.onNext);
this.hasPageBarEvents = true;
}
以后用到JQuery要小心這個(gè)特性。
相關(guān)文章
JS設(shè)置定時(shí)循環(huán)執(zhí)行某任務(wù)的方法示例
在Web前端開發(fā)中,定時(shí)執(zhí)行某個(gè)任務(wù)是常見的需求之一,無(wú)論是為了實(shí)現(xiàn)輪詢服務(wù)器獲取最新數(shù)據(jù)、定期更新用戶界面還是其他周期性操作,JavaScript提供了多種方法來(lái)設(shè)置定時(shí)循環(huán),本文將深入探討如何使用setTimeout和setInterval來(lái)定時(shí)執(zhí)行任務(wù),需要的朋友可以參考下2025-02-02
JavaScript 獲取事件對(duì)象的注意點(diǎn)
平時(shí)我們獲取事件對(duì)象一定要將firefox考慮進(jìn)去。2009-07-07
js判斷數(shù)組中是否包含某個(gè)值的4種方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于js判斷數(shù)組中是否包含某個(gè)值的4種方法,數(shù)組是我們編程中經(jīng)常使用的的數(shù)據(jù)結(jié)構(gòu)之一,在處理數(shù)組時(shí)我們經(jīng)常需要在數(shù)組中查找特定的值,JavaScript 包含一些內(nèi)置方法來(lái)檢查數(shù)組是否有特定的值或?qū)ο?需要的朋友可以參考下2023-11-11
javascript substr和substring用法比較
在js中substring和substr都是用來(lái)截取字符串的,那么substring和substr之間的具體區(qū)別在哪里,有沒(méi)有區(qū)別呢,下面我來(lái)給各位詳細(xì)引用一些實(shí)例來(lái)介紹這些問(wèn)題2009-06-06
HTML+JS實(shí)現(xiàn)經(jīng)典推箱子游戲
今天,這篇文章將利用HTML,CSS,JS的知識(shí)編寫一個(gè)童年經(jīng)典游戲?-?推箱子,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-11-11
js實(shí)現(xiàn)數(shù)字滾動(dòng)特效
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)數(shù)字滾動(dòng)特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12

