我想为将要创建的与 JQuery 选择器匹配的所有标签创建一个等同于 onCreate
事件的事件。
例如,让我们考虑一个文档,其中 $("#foo > .bar > ul > li")
的结果是一个空集。我有一个名为 fooBar
的函数,我希望在创建匹配 $("#foo > .bar > ul > li")
的标签时调用此函数。
我想在我的中定义这个事件
$(function() {});
有人知道这样做的可能性吗?
最佳答案
据我所知,在将元素添加到 DOM 时不会触发任何事件,因此您无法将处理程序绑定(bind)到任何内容以进行检查。
您可以做的是设置一个轮询例程,该例程将定期检查 DOM 中是否有与您的选择器匹配的元素,将当前匹配项数与先前值进行比较,如果它们不同,则执行您希望的任何操作。
var matchedElements = 0;
function poll() {
var $elements = $("#foo > .bar > ul > li");
if($elements.length > matchedElements) {
fooBar();
}
matchedElements = $elements.length;
}
setInterval(poll, 500); // runs poll() every half a second
这一切都假设您没有控制这些元素的创建,或者至少没有以让您可靠地知道它们已被创建的方式控制它们。
如果这些元素的唯一来源是您编写的单个函数,那么您可以简单地扩展它以触发绑定(bind)在 jQuery 中的自定义事件的处理程序。
关于javascript - 创建某个标签时是否有可能引发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10209884/