日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

jQuery on()方法绑定动态元素的点击事件无响应的解决办法

發布時間:2023/12/13 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jQuery on()方法绑定动态元素的点击事件无响应的解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
$('#check_all').on('click' , function(){ alert(1); }); $("#yujinlist").append(html); count++; }

以上代碼執行時,點擊#check_all時,alert一直沒反應,后在網上查資料時,才知道on前面的元素也必須在頁面加載的時候就存在于dom里面, 那原話是這樣的:

支持給動態元素和屬性綁定事件的是live和on,其中live在JQUERY 1.7之后就不推薦使用了。現在主要用on,使用on的時候也要注意,on前面的元素也必須在頁面加載的時候就存在于dom里面。動態的元素或者樣式等,可以放在on的第二個參數里面。

因為我先輸出相關html,再執行就沒問題了。

<div class="row">\ <div class="col-xs-12">\ <div class="control-group">\ <label class="control-label bolder blue">選擇鎮街</label>\ <div class="row">\ <div class="checkbox col-xs-1">\ <label>\ <input type="checkbox" class="checkbox" id="check_all" />\ <span class="lbl">全區</span>\ </label>\ </div>\ <div id="check_item">\ <div class="checkbox col-xs-1 ">\ <label>\ <input name="towm'+count+'" type="checkbox" class="checkbox" />\ <span class="lbl">西南街道</span>\ </label>\ </div>\ <div class="checkbox col-xs-1 ">\ <label>\ <input name="towm'+count+'" type="checkbox" class="checkbox" />\ <span class="lbl">云東海街道</span>\ </label>\ </div>\ <div class="checkbox col-xs-1">\ <label>\ <input name="towm'+count+'" type="checkbox" class="checkbox" />\ <span class="lbl">白坭鎮</span>\ </label>\ </div>\ <div class="checkbox col-xs-1">\ <label class="block">\ <input name="towm'+count+'" type="checkbox" class="checkbox" />\ <span class="lbl">樂平鎮</span>\ </label>\ </div>\ <div class="checkbox col-xs-1">\ <label class="block">\ <input name="towm'+count+'" type="checkbox" class="checkbox" />\ <span class="lbl">大塘鎮</span>\ </label>\ </div>\ <div class="checkbox col-xs-1">\ <label class="block">\ <input name="towm'+count+'" type="checkbox" class="checkbox" />\ <span class="lbl">蘆苞鎮</span>\ </label>\ </div>\ <div class="checkbox col-xs-1">\ <label class="block">\ <input name="towm'+count+'" type="checkbox" class="checkbox" />\ <span class="lbl">南山鎮</span>\ </label>\ </div>\ </div>\ </div>\ </div>\ </div>\ </div>\ <hr />'; $('#check_all').on('click' , function(){ var that = this; $('#check_item').find('input:checkbox') .each(function(){ alert(2); this.checked = that.checked; $(this).closest('.col-xs-1').toggleClass('selected'); }); });

下面看下jquery on() 方法綁定動態元素

jQuery on()方法是官方推薦的綁定事件的一個方法。使用 on() 方法可以給將來動態創建的動態元素綁定指定的事件,例如append等。

<div id="test"> <div class="evt">evt1</div> </div> 錯誤的用法,下面方法只為第一個class 為 evt 的div 綁定了click事件,使用append動態創建的div則沒有綁定
<script> // 先綁定事件再添加div $('#test .evt').on('click', function() {alert($(this).text())}); $('#test').append('<div class="evt">evt2</div>'); </script> 正確的用法如下:


<script> $('body').on('click', '#test .evt', function() {alert($(this).text())}); $('#test').append('<div class="evt">evt2</div>'); </script>



總結

以上是生活随笔為你收集整理的jQuery on()方法绑定动态元素的点击事件无响应的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。