在没有重复代码的情况下对新创建的内容运行jquery

时间:2014-05-17 19:02:36

标签: jquery ajax

当我的文档准备就绪时,我想在所有带有“test”类的元素上运行javascript函数。

$(document).ready(function
{
    $('.test').doSomething();
});

想象一下,我还使用jquery / AJAX将一些内容动态加载到div中。该内容还可能包含具有类测试的元素。我如何确保在它们上面调用doSomething。换句话说,我想要一个函数在出现时尽快通过类测试调用,无论它们是在第一个位置还是在动态加载。当然,我可以写

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

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

1 个答案:

答案 0 :(得分:1)

上述评论的扩展:

jQuery有几个方法可以让你为所有AJAX请求http://api.jquery.com/ajaxSuccess/注册全局处理程序。您可以使用它并在每次成功请求时调用doSomething,过滤已经调用该方法的.test个元素。

有很多方法可以完成“过滤”,但绝对最简单的方法是在触发方法后为每个.test元素添加一个类。

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

这会同时滤除您已添加的内容。