0

Мне нужно получить данные при добавлении определенного атрибута. Я прочитал этот пост: Is there a JavaScript/jQuery DOM change listener?Прослушивание событий DOM (конкретные атрибуты)

var observer = new MutationObserver(function (mutations, observer) { 
    // fired when a mutation occurs 
    $.each(mutations, function(index, mutation) { 

     var post = $(mutation.target).find('div[class^="ContentWrapper"]'); 


    }); 
    }); 
    observer.observe(document, { 
    subtree: true, 
    attributes: true 

    }); 

Там есть проблема с этим подходом, потому что для многих событий и расширение происходит очень медленно, есть возможность фильтровать мутации, по определенному атрибуту?

+1

Возможный дубликат [Как реагировать на изменение атрибута стиля с помощью наблюдателей мутации?] (Http://stackoverflow.com/questions/39024163/how-to-react-to-a-specific-style-attribute- change-with-mutation-observers) – wOxxOm

+0

это нехорошо .... это даст мне весь добавленный класс, я хочу определенный класс @wOxxOm –

+2

Это единственный способ ограничить наблюдение атрибутов. Будь креативным. Не соблюдайте весь документ, например, сделайте это на родительском контейнере. – wOxxOm

ответ

0

Используйте опции attributeFilter в параметрах MutationObserverInit. Установите его в массив атрибутов, которые вы хотите слушать, как так:

var attributeSpecificObserver=new MutationObserver(function_you_want_observing); 
attributeSpecificObserver.observe(element_you_want_to_observe, { 
    attributes: true, 
    attributeFilter: ['id', 'class', 'style', 'etc'], 
}); 

Источник: Mozilla Developer Network (MDN).

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