让我说我有以下代码,返回页面上的锚点元素的数量:
function getLinkCount() { alert("Links:" + $("a").length); }
如果我打电话进行文件准备好它将如预期工作。但是如果现在一个新的链接通过javascript动态插入页面,我怎么能得到通知再次运行链接计数器功能? (我没有控制可以创建一个新的链接的脚本)。
基本上,我正在寻找类似于live()的东西,那将是观看元素创建事件,类似:
$("a").live("create",getLinkCount);
这将在创建新元素时触发。
解决方法
你可以使用
.livequery()
plugin为此,它运行每个元素,包括新的,像这样:
$("a").livequery(getLinkCount);
但是,此插件已过时,不推荐当前版本的jQuery。
在创建元素时通常更容易做到这一点,例如,如果你是在AJAX请求之后,.ajaxComplete()
handler可能是一个好地方,例如:
$(document).ajaxComplete(getLinkCount);
这将在每个请求之后运行,并且由于您通常在成功处理程序中创建元素,所以当这个完整的处理程序运行时,它们已经存在。