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