【发布时间】:2018-09-21 13:51:58
【问题描述】:
我需要使用 class="kendoTooltip" 定位所有元素,并在任何具有该类的元素上运行 jQuery 函数。
html 的一个例子是;
<div class="document_wrapper">
<div>
<div class="kendoTooltip">Tooltip!</div>
</div>
</div>
我一直在尝试使用突变观察器,但无法定位页面深处的元素。
使用以下代码,我得到了最接近的结果,但问题似乎是突变观察者只监视音符本身及其直接子元素。我也试过递归调用它,但没有成功。
var mutationObserver = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (!mutation.target.classList.contains('isRendered') && mutation.target.classList.contains('kendoTooltip')) {
renderTooltip(mutation.target);
mutation.target.classList.add('isRendered');
}
});
});
mutationObserver.observe(document.documentElement || document.body, {
childList: true,
subtree: true
});
【问题讨论】:
-
你没有观察到什么突变?即您发布的内容没有突变,所以当然什么也不会发生
-
@JaromandaX 我需要跟踪何时创建了具有
kendoTooltip类的元素。据我所知,childElements会跟踪添加节点的时间。 -
您没有显示任何突变,只是静态 HTML - 它本身不会发生突变
-
@wOxxOm 有道理,谢谢!
标签: javascript mutation-observers