Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的JQuery代码没有';通过ajax加载数据后无法工作?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 为什么我的JQuery代码没有';通过ajax加载数据后无法工作?

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时,它就不起作用了(对于打开和关闭的子级,我有+和-,但是当我单击+或-任何发生的事

我有一个包含以下jquery代码的树视图:

$(".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:必须看到一个。