如何在jQuery中检测新元素创建?

让我说我有以下代码,返回页面上的锚点元素的数量
function getLinkCount() {
    alert("Links:" + $("a").length);
}

如果我打电话进行文件准备好它将如预期工作。但是如果现在一个新的链接通过javascript动态插入页面,我怎么能得到通知再次运行链接计数器功能? (我没有控制可以创建一个新的链接的脚本)。

基本上,我正在寻找类似于live()的东西,那将是观看元素创建事件,类似:

$("a").live("create",getLinkCount);

这将在创建新元素时触发。

解决方法

你可以使用 .livequery() plugin为此,它运行每个元素,包括新的,像这样:
$("a").livequery(getLinkCount);

但是,此插件已过时,不推荐当前版本的jQuery。

在创建元素时通常更容易做到这一点,例如,如果你是在AJAX请求之后,.ajaxComplete() handler可能是一个好地方,例如:

$(document).ajaxComplete(getLinkCount);

这将在每个请求之后运行,并且由于您通常在成功处理程序中创建元素,所以当这个完整的处理程序运行时,它们已经存在。

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...