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實現DOM元素事件動態繫結jQuery事件
- 動態生成的html元素繫結click事件HTML事件
- 動態生成html元素繫結事件iphone失效問題解決HTML事件iPhone
- win10開始選單點選無反應解決辦法Win10
- jquery中trigger無法觸發hover事件的解決方案jQuery事件
- jQuery之_事件繫結與解綁jQuery事件
- jQuery裡的silidetoggle方法不停重複動畫效果的解決辦法jQueryIDE動畫
- 用opacity方法來隱藏元素後,照樣可以觸發繫結在其身上的點選事件事件
- Vue動態路由快取不相互影響的解決辦法Vue路由快取
- jQuery動態生成html元素的幾種方法jQueryHTML
- win10滑鼠能動但是無法點選怎麼辦 win10滑鼠能動但點選無反應的方法Win10
- [Android]關於Android子view超出父view無法響應點選事件AndroidView事件
- JS給全域性繫結事件以及給除某個元素外的其他元素繫結事件JS事件
- tomcat無法啟動的解決方法Tomcat
- 批量更新時無法觸發事件的解決方法事件
- 使用 Laravel Sail 時, sail 與容器互動的命令無響應的問題及解決辦法LaravelAI
- 解決 Vue 動態生成 el-checkbox 點選無法賦值問題Vue賦值
- 子元素浮動不能正常顯示的解決辦法
- ie 9 背景透明的空白元素無法點選
- Finder持續無響應怎麼辦?Finder無響應解決教程
- 解決Android7.0以上 notification系統自動摺疊點選點選事件無法監聽問題Android事件
- win10電腦點選滑鼠右鍵無法響應無反應如何解決Win10
- JS中動態新增元素並繫結事件,造成程式重複執行JS事件
- 記vscode無法啟動解決辦法VSCode
- 對於動態載入內容 (包括 Ajax 請求內容) 繫結點選事件事件
- jQuery事件中on實現繫結多個事件jQuery事件
- C++的動態繫結和靜態繫結C++
- java中的靜態繫結與動態繫結Java
- swiper loop:true引發繫結dom的click事件無效及解決方案OOP事件
- JQuery實現下拉框Select的獲取值與文字、動態繫結資料、事件等操作jQuery事件
- Vue的動態選單無法登入(無法載入選單)Vue
- jQuery動態設定div元素的尺寸jQuery
- 構造器中呼叫動態繫結的方法
- select下拉選擇第一個選項為空白、option無法選中的解決辦法,
- windows time服務無法啟動的解決方法Windows
- windows使用git bash 無法互動鍵盤上下鍵移動選擇選項的解決方法WindowsGit
- 使用 Dingo 後 Handler 中 render 方法無效的解決辦法Go
- 1.22 JQuery5:繫結自定義事件jQuery事件