簡體   English   中英

避免在向標簽添加ID時觸發DOMSubtreeModified事件

[英]Avoiding DOMSubtreeModified event to be fired on adding ID to a tag

我正在使用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事件?

DOMSubtreeModified的問題在於,這是一個非常粗糙的事件。 如果讓事件處理程序更具體一些,也許不需要阻止事件觸發。 您真的想對哪個事件做出反應? 如果您可以通過在事件處理程序中使用事件對象e或通過簡單地綁定更細粒度的事件處理程序(如OnKeyPress)來解決此問題,則可能不會出現此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM