成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - jq click事件重復(fù)執(zhí)行的問(wèn)題

瀏覽:132日期:2023-04-09 10:19:59

問(wèn)題描述

求助,jq動(dòng)態(tài)生成的元素需要用on來(lái)綁定點(diǎn)擊事件才生效,而執(zhí)行on的函數(shù)里面也有點(diǎn)擊事件,然后函數(shù)就被執(zhí)行了兩次,這樣的情況該怎么解決?

問(wèn)題解答

回答1:

用event對(duì)象找到你真正想點(diǎn)擊的目標(biāo)

回答2:

其實(shí),無(wú)非就是事件綁定了2次或者事件冒泡引起的;1,解除事件,再綁定

$(ele).unbind(’click’).click(function() {// to do })

2,取消冒泡

$(ele).click(function(e){ e.stopPropagation();});回答3:

先去除監(jiān)聽(tīng),后監(jiān)聽(tīng).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:

樓上的說(shuō)的比較清楚了。1.找到問(wèn)題 1.1 是綁定了兩次,因?yàn)閯?dòng)態(tài)生成的元素綁定了一個(gè)事件,但是在這個(gè)事件中又去調(diào)用了之前綁定的事件

$(’document’).unbind(’click’).click(function() { //取消綁定的回調(diào)事件})

1.2 還是 事件的冒泡導(dǎo)致(如果不熟悉冒泡,請(qǐng)先看下相關(guān)資料)

$(’document’).click(function(e){ //取消事件冒泡 e.stopPropagation();});

2.動(dòng)態(tài)生成的元素其實(shí)可以不一定需要使用動(dòng)態(tài)的綁定事件

使用 delegate() 方法的事件處理程序適用于當(dāng)前或未來(lái)的元素(比如由腳本創(chuàng)建的新元素)。點(diǎn)擊這里查看詳細(xì)文檔:http://www.w3school.com.cn/jq...

$('p').delegate('button','click',function(){ $('p').slideToggle();});回答9:

記得on()之后off()掉

標(biāo)簽: JavaScript
相關(guān)文章: