2013-05-16 89 views
0

是否有一個函數來檢測是否已經對DOM進行了新的元素注入? 而不是我的Ajax調用後不斷地檢查,看看是否有注入像這樣新的圖像:jquery檢測元素注入

$.ajax({ 
    ... 
    ... 
    success: function(data) { 
     $('.content').replaceWith(data); 
     if ($(data).find('img').length) alert('New images found!'); 
    } 
}); 

我一直希望有一個功能,在那裏存在,檢查是否有新的圖片添加到DOM。例如:

$('img').injected(function() { 
    console.log('Found new images: ' + this); 
}); 
+0

可能重複:http://stackoverflow.com/questions/4765768/jquery-run-a-function-when-dom-changes – PeterFour

+0

可能重複:http://stackoverflow.com/questions/1091661/ detect-element-content-changes-with-jquery – slinky2000

回答

0

您可以通過突變觀察者檢測DOM變化。由於我不知道你的標記,我將使用通用元素。 .injectedElementParent是您想要注入img的家長。

// select the target node 
var target = document.querySelector('.injectedElementParent'); 

// create an observer instance 
var observer = new MutationObserver(function(mutations) { 
    mutations.forEach(function(mutation) { 
     console.log(mutation); 
    });  
}); 

// configuration of the observer: 
var config = { attributes: true, childList: true, characterData: true } 

// pass in the target node, as well as the observer options 
observer.observe(target, config); 
+0

我得到「TypeError:Value not an object。」對於「var config = {...}」行 – user1105430

+0

您可以使用您的代碼做一個小提琴嗎? – Mircea