我试图在DOM准备好后检测元素是否可见。此元素是第三方窗口小部件,加载速度比页面慢。
我的console.log准备就绪'正在开火 - 就像应该这样,但我检查元素是否可见正在返回false,因为元素在dom准备好后加载。
有没有办法在dom加载后监听元素?
<script>
$(function(){
console.log('dom ready');
if($(element).is(':visible')){
console.log('element is visible. do stuff.');
}
});
</script>
答案 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毫秒不够,你可以增加这个间隔,除非它有效,但我不建议使用这种方法。