jQuery on()方法綁定動態(tài)元素的點(diǎn)擊事件無響應(yīng)的解決辦法
來源:易賢網(wǎng) 閱讀:1599 次 日期:2016-07-25 16:06:28
溫馨提示:易賢網(wǎng)小編為您整理了“jQuery on()方法綁定動態(tài)元素的點(diǎn)擊事件無響應(yīng)的解決辦法”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了jQuery on()方法綁定動態(tài)元素的點(diǎn)擊事件無響應(yīng)的解決辦法的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

$('#check_all').on('click' , function(){

alert(1);

});

$("#yujinlist").append(html);

count++;

}

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

支持給動態(tài)元素和屬性綁定事件的是live和on,其中l(wèi)ive在JQUERY 1.7之后就不推薦使用了?,F(xiàn)在主要用on,使用on的時候也要注意,on前面的元素也必須在頁面加載的時候就存在于dom里面。動態(tài)的元素或者樣式等,可以放在on的第二個參數(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() 方法綁定動態(tài)元素

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

<div id="test">

<div class="evt">evt1</div>

</div>

錯誤的用法,下面方法只為第一個class 為 evt 的div 綁定了click事件,使用append動態(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()方法綁定動態(tài)元素的點(diǎn)擊事件無響應(yīng)的解決辦法,希望對大家有所幫助

更多信息請查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)