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

时间:2014-04-01 18:25:58

标签: javascript jquery

我试图在DOM准备好后检测元素是否可见。此元素是第三方窗口小部件,加载速度比页面慢。

我的console.log准备就绪'正在开火 - 就像应该这样,但我检查元素是否可见正在返回false,因为元素在dom准备好后加载。​​

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

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

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

    });
</script>

2 个答案:

答案 0 :(得分:1)

你可以从iframe中获取id,或者从正在加载的文档中获取id并执行类似的操作..

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

这将在脚本iframe完成加载后触发

答案 1 :(得分:1)

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

如果无法尝试使用setTimeout功能:

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

如果10毫秒不够,你可以增加这个间隔,除非它有效,但我不建议使用这种方法。