在DOM准备就绪后检查元素是否存在

我试图在DOM准备好之后检测元素是否可见。 这个元素是一个比页面加载速度慢的第三方小部件。

我的console.log for'dom ready'正在触发 - 就像它应该那样,但是我检查元素是否可见正在返回false,因为元素在dom准备好后加载。

在dom加载后有没有办法监听元素?

<script>
    $(function(){
        console.log('dom ready');

        if($(element).is(':visible')){
            console.log('element is visible. do stuff.');
        }

    });
</script>

你可以从iframe中获取id,或者从正在加载的文档中获取id,并执行如下所示的操作。

$('#external').load(function(){
    //lets do something when is loaded
    if($(element).is(':visible')){
       console.log('element is visible. do stuff.');
    }
});

这将触发该脚本,iframe完成加载


尝试阅读文档,也许第三方小部件的API允许您在创建事件时附加监听器。 这将是一个理想的解决方案。

如果不可能,请尝试使用setTimeout函数:

$(function(){
    console.log('dom ready');
    setTimeout(function() {
        if($(element).is(':visible')){
            console.log('element is visible. do stuff.');
        }
    }, 10);
});

如果10毫秒不够用,除非它工作,否则可能会增加此间隔,尽管我不建议使用此方法。

链接地址: http://www.djcxy.com/p/95235.html

上一篇: Check to see if element exists after DOM is ready

下一篇: Angularjs directive controller : wait for DOM to be ready