javascript - jq click事件重復執行的問題
問題描述
求助,jq動態生成的元素需要用on來綁定點擊事件才生效,而執行on的函數里面也有點擊事件,然后函數就被執行了兩次,這樣的情況該怎么解決?
問題解答
回答1:用event對象找到你真正想點擊的目標
回答2:其實,無非就是事件綁定了2次或者事件冒泡引起的;1,解除事件,再綁定
$(ele).unbind(’click’).click(function() {// to do })
2,取消冒泡
$(ele).click(function(e){ e.stopPropagation();});回答3:
先去除監聽,后監聽.off(handler).on(handler)
回答4:這是冒泡? e.stopPropagation()
回答5:off 先解綁 在綁定
回答6:$(’document’).unbind(’click’).click(function() { //dosomething })回答7:
function removeMaopao(ev){var eEvent = ev || event;eEvent.stopPropagation() && eEvent.stopPropagation;return false; }回答8:
樓上的說的比較清楚了。1.找到問題 1.1 是綁定了兩次,因為動態生成的元素綁定了一個事件,但是在這個事件中又去調用了之前綁定的事件
$(’document’).unbind(’click’).click(function() { //取消綁定的回調事件})
1.2 還是 事件的冒泡導致(如果不熟悉冒泡,請先看下相關資料)
$(’document’).click(function(e){ //取消事件冒泡 e.stopPropagation();});
2.動態生成的元素其實可以不一定需要使用動態的綁定事件
使用 delegate() 方法的事件處理程序適用于當前或未來的元素(比如由腳本創建的新元素)。點擊這里查看詳細文檔:http://www.w3school.com.cn/jq...
$('p').delegate('button','click',function(){ $('p').slideToggle();});回答9:
記得on()之后off()掉
相關文章:
1. docker內創建jenkins訪問另一個容器下的服務器問題2. 如何解決Centos下Docker服務啟動無響應,且輸入docker命令無響應?3. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?4. css3 - 學習css構建圖形時,遇到一個很有意思的現象,具體代碼如下5. 極光推送 - Android app消息推送 百度 極光 個推 信鴿哪個好一些?6. javascript - js閉包作用域7. html5 - 百度echart官網下載的地圖json數據亂碼8. html - css 使用字體的時候,格式有什么特殊要求嗎?9. 微信開放平臺 - android 微信支付后點完成按鈕,后回調打開第三方頁面,屏幕閃動,求解決方法10. javascript - echart+百度地圖
