如何为动态加载的元素添加javascript变异观察者
我有一个场景,在这个场景中,DOM元素可能在页面加载时加载,也可能不加载,或者加载样式显示块,或者不加载如何为动态加载的元素添加javascript变异观察者,javascript,jquery,html,mutation-observers,Javascript,Jquery,Html,Mutation Observers,我有一个场景,在这个场景中,DOM元素可能在页面加载时加载,也可能不加载,或者加载样式显示块,或者不加载 如果dom元素使用display块逐页加载,那么我不应该做任何事情,如果它使用style display none加载,那么我必须将观察者附加到该特定元素,一旦该元素更改为display块,那么我需要启动一个方法 目前,如果dom元素在页面加载时使用display none/block加载,则上述场景可以正常工作 但是在这个场景中,如果dom元素没有在页面加载时加载,我需要编写一个watch
一般来说,您应该知道何时插入元素,何时更改属性,所以只有在非常特殊的情况下才应该使用间隔、变异观察者等。@adeneo,是的,我同意,但问题是我需要检查元素的属性更改,我不知道它什么时候会加载到页面上。谁或什么更改了属性?@LGSon:用适当的要求更改了问题描述。嗯,所以只需添加另一个MutationObserver并检查每个添加的节点的文本内容。
<div class="test"> 1234567890 </div>
var o_sel;
var o_obj ='';
o_obj = $("*:contains('123')*:contains('4567')");
if(o_obj.length != 0){
if(o_obj.last()[0].innerHTML.indexOf('890') >= 0){
for(var i=o_obj.length-1; i>=0; --i){
if($(o_obj[i]).is(':hidden') == true){
if($(o_obj[i]).css('display') == 'none'){
o_sel=o_obj[i];
break;
}
}
}
if(o_sel){
var o_observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
alert('found');
});
});
var config = {attributes: true, attributeFilter: ['style']};
o_observer.observe(o_sel,config);
}
}
}