我使用DOMSubtreeModified来获取div中的所有DOM更改。
var stoppedTyping="";
$(".jqte_editor").on("DOMSubtreeModified", function(e) {
if (stoppedTyping) clearTimeout(stoppedTyping);
stoppedTyping = setTimeout(function(){
var editorText = $(".jqte_editor").html();
createUniqueId($(".jqte_editor"));
console.log(editorText);
}, 1000);
});
在上面的代码中,在DOM更改时,我正在调用createUniqueId()函数。
function createUniqueId(tag){
var children = tag.children();
if(children.length > 0)
{
for ( var i = 0; i < children.length; i++) {
var child = children[i];
var childId = $(child).attr("id");
if(childId == undefined)
{
var id = UUID.generate();
$(child).attr('id', id);
}
}
}
}
上面的代码为每个没有id的标签创建一个唯一的ID 在分配Id时,会触发DOMSubtreeModified事件 如何避免它在分配ID时触发DOMSubtreeModified事件?
答案 0 :(得分:0)
DOMSubtreeModified的问题在于它是一个非常粗糙的事件。如果您希望事件处理程序更具体,则可能不需要阻止事件触发。您真的想对哪个事件做出反应?如果您可以通过在事件处理程序中使用事件对象e
来文件化,或者通过简单绑定一个更细粒度的事件处理程序(如OnKeyPress),您可能不会遇到此问题。