javascript - 创建某个标签时是否有可能引发事件?

标签 javascript jquery dom dom-events

我想为将要创建的与 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/

相关文章:

javascript - 无法追踪可能的导入/导出错误 - React/ES6 模块

java - 重定向/转发我的 JSP 页面

javascript - 无法让 jQuery 停止冲突

java - 访问子节点的长度返回原始计数的两倍

javascript - 使用 js(或 jquery)的表情符号选择器焦点

javascript - 从 javascript/cordova 编写 pdf

javascript - 浏览器后退按钮位置问题

javascript - 在js控制台中访问jquery对象

javascript - 为什么在删除列表项 [Js DOM] 时,removeChild() 不起作用?

javascript - 管理大量主干异步请求