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

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

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

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

同時加深對js事件處理機制的理解。

1. 事件被解綁

這種情況下一般不會導致click失效,但以下情況,click事件就失效了:

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

所以,click事件要有個好習慣:

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

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

一般含有等待時間/開始運行時間:WaitTime

此時直接綁定/監(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. 點擊鏈接無反應

以下代碼會導致a標簽有href也無法跳轉(zhuǎn)

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

解決方法:

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

小結

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

2.事件捕獲與冒泡 相關鏈接

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

事件捕獲

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

事件冒泡

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

3.javascript執(zhí)行順序

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

相關文章

最新評論