Javascript 为什么我的JQuery代码没有';通过ajax加载数据后无法工作?
我有一个包含以下jquery代码的树视图:Javascript 为什么我的JQuery代码没有';通过ajax加载数据后无法工作?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个包含以下jquery代码的树视图: $(".treeView").on("click", ".CollOpen, .CollClosed", function () { $(this).toggleClass("CollOpen CollClosed").nextAll('ul').first().toggle(); }); 加载页面时,它可以正常工作。当树视图被更改,然后加载了AjaxAjax时,它就不起作用了(对于打开和关闭的子级,我有+和-,但是当我单击+或-任何发生的事
$(".treeView").on("click", ".CollOpen, .CollClosed", function () {
$(this).toggleClass("CollOpen CollClosed").nextAll('ul').first().toggle();
});
加载页面时,它可以正常工作。当树视图被更改,然后加载了AjaxAjax时,它就不起作用了(对于打开和关闭的子级,我有+和-,但是当我单击+或-任何发生的事情时)。如果我刷新页面,它将再次正常工作。
为什么?
您能帮助我吗?尝试使用body标签,而不是动态修改的
。treeview
:
$("body").on("click", ".CollOpen, .CollClosed", function () {
$(this).toggleClass("CollOpen CollClosed").nextAll('ul').first().toggle();
});
根据所显示的内容,如果要替换
.treeview
元素,则不会设置处理程序来处理新的替换.treeview
元素
如果是这种情况,您可以将事件挂接到treeview的容器上,基本上是第一个不被替换的元素。例如:
$(".treeview_container_that_stays_put").on("click", ".treeView .CollOpen, .treeView .CollClosed", function () {
$(this).toggleClass("CollOpen CollClosed").nextAll('ul').first().toggle();
});
您甚至可以在(…上使用
$(document.body.),但通常有一个不变的容器更接近您正在使用的内容。您可以发布相应的HTML吗?我对$('.treeView').find('ul li:last child').addClass('lastChild')有问题,也是。这在ajax加载后不起作用。我怎样才能解决这个问题?@Farzaneh:必须看到一个。