[英]Why my JQuery code doesn't work after data loading through ajax?
我有這個jQuery代碼樹視圖:
$(".treeView").on("click", ".CollOpen, .CollClosed", function () {
$(this).toggleClass("CollOpen CollClosed").nextAll('ul').first().toggle();
});
頁面加載后,它可以正常工作。 當樹狀視圖被更改然后再用Ajax加載時,它不起作用(我對打開和關閉的子項使用+和-,但是當我單擊+或-發生任何事情時)。 如果我刷新頁面,它將再次正常工作。 為什么呢?
請問你能幫幫我嗎 ?
嘗試使用body標簽代替動態修改的.treeview
:
$("body").on("click", ".CollOpen, .CollClosed", function () {
$(this).toggleClass("CollOpen CollClosed").nextAll('ul').first().toggle();
});
根據顯示的內容,如果要替換 .treeview
元素,則不會設置任何處理程序來處理新的替換.treeview
元素。
如果是這樣,您可以將事件掛接到樹視圖的容器上,基本上是第一個不會被替換的元素。 例如:
$(".treeview_container_that_stays_put").on("click", ".treeView .CollOpen, .treeView .CollClosed", function () {
$(this).toggleClass("CollOpen CollClosed").nextAll('ul').first().toggle();
});
您甚至可以使用$(document.body).on(...
,但是通常有一個不變的容器,它比您要使用的容器更接近。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.