国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 17:32:21
字體:
來源:轉載
供稿:網友

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

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

1. 事件被解綁

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

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

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

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

2. js插件異步/動態加載dom

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

此時直接綁定/監聽無效:

$(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()函數體中加click事件
  • 同2中的事件委托方法。

4. 點擊鏈接無反應

以下代碼會導致a標簽有href也無法跳轉

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

解決方法:

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

小結

1.事件綁定,事件監聽,事件委托 相關鏈接

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

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

事件捕獲

父元素先發生,子元素后

事件冒泡

子元素先發生,父元素后

3.javascript執行順序

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沅陵县| 泰州市| 清原| 沈丘县| 突泉县| 松桃| 红原县| 精河县| 湘西| 天峨县| 长垣县| 沁水县| 光山县| 工布江达县| 辽源市| 满城县| 庆阳市| 错那县| 竹北市| 利津县| 霞浦县| 肃北| 平远县| 博白县| 莱阳市| 类乌齐县| 广元市| 株洲市| 本溪| 河曲县| 邢台市| 慈利县| 西盟| 吴忠市| 东安县| 台江县| 蒲江县| 中牟县| 安庆市| 广西| 垣曲县|