2013-05-16 5 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 a object». для "var config = {...}" строка – user1105430

+0

Не могли бы вы сделать скрипку с кодом? – Mircea

Смежные вопросы