Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
在新创建的内容上运行jquery,而不复制代码_Jquery_Ajax - Fatal编程技术网

在新创建的内容上运行jquery,而不复制代码

在新创建的内容上运行jquery,而不复制代码,jquery,ajax,Jquery,Ajax,当我的文档准备好后,我想在类为“test”的所有元素上运行javascript函数 假设我还使用jquery/AJAX将一些内容动态加载到div中。该内容还可能包含带有类test的元素。我如何确保他们也会被要求做一些事情。换句话说,我希望一个函数在类test的所有元素出现时立即被调用,而不管它们最初是在那里还是以后动态加载。当然,我会写作 $('.test').doSomething(); 在AJAX回调中也是如此,但我希望可以避免在每个AJAX回调中编写相同的代码。这可能吗?这有意义吗?我对

当我的文档准备好后,我想在类为“test”的所有元素上运行javascript函数

假设我还使用jquery/AJAX将一些内容动态加载到div中。该内容还可能包含带有类test的元素。我如何确保他们也会被要求做一些事情。换句话说,我希望一个函数在类test的所有元素出现时立即被调用,而不管它们最初是在那里还是以后动态加载。当然,我会写作

$('.test').doSomething();

在AJAX回调中也是如此,但我希望可以避免在每个AJAX回调中编写相同的代码。这可能吗?这有意义吗?

我对上述评论的扩展:


jQuery有两个方法可以让您为所有AJAX请求注册全局处理程序。您可以使用它,并在每次成功发出请求时调用
doSomething
,筛选已调用该方法的
。test
元素

有很多方法可以完成“过滤”,但最简单的方法是在启动方法后向每个.test元素添加一个类

$(document).ajaxSuccess(function () {
  $('.test:not(.added)').addClass('added').doSomething();
});

这将同时过滤掉您已经添加的内容。

@susheel:我对web开发不熟悉。我不知道有代表。快速看一下,这可能就是我需要的。非常感谢。但正如我所见,我可以编写一个在事件上激发的委托。在我的例子中,事件仅仅是元素的外观。那么我的jquery看起来会是什么样子呢?
$(“.test”)。在(“单击”,“body”,function(){your code here})
body可以替换为最近的已加载元素,以获得更好的效果performance@susheel:我不希望必须单击元素才能调用函数,请参见?我希望在添加元素后立即调用它。jQuery有两个方法,可以让您为所有AJAX请求注册全局处理程序。您可以使用它,并在每次成功发出请求时调用
doSomething
,筛选已调用该方法的
。test
元素。不管它有多有用,都不会发生什么意外。@ArmenTsirunyan一点也不傻。有很多方法可以做到这一点。最简单的方法是在激发该方法后向每个
.test
元素添加一个类<代码>$('.test:未(.added').addClass('added').doSomething()。这将同时过滤掉您已经添加的内容。
$(document).ajaxSuccess(function () {
  $('.test:not(.added)').addClass('added').doSomething();
});