這篇文章主要介紹了jQuery on()方法綁定動(dòng)態(tài)元素的點(diǎn)擊事件無響應(yīng)的解決辦法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
$('#check_all').on('click' , function(){
alert(1);
});
$("#yujinlist").append(html);
count++;
}
以上代碼執(zhí)行時(shí),點(diǎn)擊#check_all時(shí),alert一直沒反應(yīng),后在網(wǎng)上查資料時(shí),才知道on前面的元素也必須在頁面加載的時(shí)候就存在于dom里面, 那原話是這樣的:
支持給動(dòng)態(tài)元素和屬性綁定事件的是live和on,其中l(wèi)ive在JQUERY 1.7之后就不推薦使用了?,F(xiàn)在主要用on,使用on的時(shí)候也要注意,on前面的元素也必須在頁面加載的時(shí)候就存在于dom里面。動(dòng)態(tài)的元素或者樣式等,可以放在on的第二個(gè)參數(shù)里面。
因?yàn)槲蚁容敵鱿嚓P(guān)html,再執(zhí)行就沒問題了。
<div class="row">\
<div class="col-xs-12">\
<div class="control-group">\
<label class="control-label bolder blue">選擇鎮(zhèn)街</label>\
<div class="row">\
<div class="checkbox col-xs-1">\
<label>\
<input type="checkbox" class="checkbox" id="check_all" />\
<span class="lbl">全區(qū)</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">白坭鎮(zhèn)</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">樂平鎮(zhèn)</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">大塘鎮(zhèn)</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">蘆苞鎮(zhèn)</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">南山鎮(zhèn)</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() 方法綁定動(dòng)態(tài)元素
jQuery on()方法是官方推薦的綁定事件的一個(gè)方法。使用 on() 方法可以給將來動(dòng)態(tài)創(chuàng)建的動(dòng)態(tài)元素綁定指定的事件,例如append等。
<div id="test">
<div class="evt">evt1</div>
</div>
錯(cuò)誤的用法,下面方法只為第一個(gè)class 為 evt 的div 綁定了click事件,使用append動(dòng)態(tài)創(chuàng)建的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()方法綁定動(dòng)態(tài)元素的點(diǎn)擊事件無響應(yīng)的解決辦法,希望對(duì)大家有所幫助