如何为动态加载的元素追加javascript Mutation Observer

时间:2016-11-13 15:52:59

标签: javascript jquery html mutation-observers

我有一个场景,其中DOM元素可能是或者可能不是页面加载时加载样式显示块或没有。

  1. 如果dom元素在页面加载页面上加载显示块,那么我不应该做任何事情,如果它在页面加载时加载样式显示无,那么我必须将观察者附加到该特定元素,一旦该元素更改显示块然后我需要触发一个方法。
  2. 目前,如果dom元素在页面加载时使用display none / block加载,则上述方案可以正常工作。
  3. 但是在场景中,dom元素在页面加载时没有加载,我需要编写一个监视方法,它将检查元素是否加载,我没有任何保持谁和元素何时会被追加。一旦元素在页面上可用,我需要遵循上面的第1点和第2点。
  4. 这就是我的尝试:

    HTML:

    <div class="test"> 1234567890 </div>
    

    JS:

    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);   
            }
        }
    }
    

0 个答案:

没有答案