在我的页面中,我根据另一个属性更改了元素的一个属性。像这样:
$("body").find("[data-action=new]").attr("data-original-title", "Create appointment");
这样做,此元素将显示工具提示,其中包含"创建约会"文本。
像这样我还有其他人。
当我在DOM中通过JS插入一些元素时,问题就开始了。
有没有办法委托这个操作来避免每次插入一个元素时调用它?
我正在寻找一个简单的解决方案来设置我的工具提示。 DOMObserver看起来太重了,无法在这里使用。或者不是?
答案 0 :(得分:1)
突变观察者似乎合适,监视addedNodes属性:
var targetNodes = $("body"); // best to make this more specific, e.g. .myNodes
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var myObserver = new MutationObserver (mutationHandler);
var obsConfig = { childList: true, characterData: true, attributes: true, subtree: true };
targetNodes.each ( function () {
myObserver.observe (this, obsConfig);
} );
function mutationHandler (mutationRecords) {
mutationRecords.forEach ( function (mutation) {
if (typeof mutation.addedNodes == "object") {
var jq = $(mutation.addedNodes);
jq.find("[data-action=new]").attr("data-original-title", "Create appointment");
}
} );
}