2013-10-16 8 views
0

DOMSubtreeModified를 사용하여 div의 모든 DOM 변경 사항을 가져옵니다.ID를 태그에 추가 할 때 발생하는 DOMSubtreeModified 이벤트 방지

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

DOMSubtreeModified의 문제점은 매우 거친 이벤트입니다. 이벤트 처리기를보다 구체적으로 만들려면 이벤트 발생을 막을 필요가 없습니다. 어떤 이벤트에 정말로 반응하고 싶습니까? 이벤트 처리기에서 이벤트 객체 e을 사용하거나 OnKeyPress와 같은보다 세밀한 이벤트 처리기를 간단하게 바인딩하여이 문제를 해결할 수 있다면이 문제는 없을 것입니다.