欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決給dom元素綁定click等事件無效問題的方法

 更新時(shí)間:2017年02月17日 09:08:50   作者:zengnificant  
本文主要介紹了解決給dom元素綁定click等事件無效問題的方法。具有很好的參考價(jià)值,下面跟著小編一起來看下吧

之前一直遇到j(luò)s插件生成的元素,click事件無效的問題,重新綁定也不行,終于找到解決方法,在此記下來。

同時(shí)加深對(duì)js事件處理機(jī)制的理解。

1. 事件被解綁

這種情況下一般不會(huì)導(dǎo)致click失效,但以下情況,click事件就失效了:

$(function(){
 $('.btn').unbind()
})
$('.btn').click(function(){
 //...
 })

所以,click事件要有個(gè)好習(xí)慣:

$(function(){
 $('.btn').click(function(){
 //...
 })
}) 

2. js插件異步/動(dòng)態(tài)加載dom

一般含有等待時(shí)間/開始運(yùn)行時(shí)間:WaitTime

此時(shí)直接綁定/監(jiān)聽無效:

$(function(){
 $('.container .btn').on('click',function(){
 //...
 })
}) 

解決方法1:

$(function(){
 setTimeout(function{ 
 $('.container .btn').click(function(){
  //...
  })
 //.btn 加載后事件 
 },WaitTime) 
}) 

解決方法2(事件委托,即委托給父元素):

$(function(){
 $('.container').on('click','.btn',function(){
 //...
 })
}) 

3. ajax 異步加載的dom

  • 可以在done()函數(shù)體中加click事件
  • 同2中的事件委托方法。

4. 點(diǎn)擊鏈接無反應(yīng)

以下代碼會(huì)導(dǎo)致a標(biāo)簽有href也無法跳轉(zhuǎn)

$(function(){
 $('a').on('click',function(e){
 e.preventDefault()
 //...
 })
}) 

解決方法:

$(function(){
 $('a').on('click',function(e){
 e.preventDefault()
 //...
 })
 $('a').unbind()
})

小結(jié)

1.事件綁定,事件監(jiān)聽,事件委托 相關(guān)鏈接

2.事件捕獲與冒泡 相關(guān)鏈接

 target.addEventListener(type, listener[, options]);
 target.addEventListener(type, listener[, useCapture]);

事件捕獲

父元素先發(fā)生,子元素后

事件冒泡

子元素先發(fā)生,父元素后

3.javascript執(zhí)行順序

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

最新評(píng)論