JS / jQuery while循环直到dom元素被加载

时间:2013-12-18 21:07:37

标签: javascript jquery html

在将所需页面加载到打开的标签页后,我正在使用一个没有成功处理程序的标签。

现在我想在加载元素之后编辑客户端上的内容,这通常是在异步函数中完成的 - 但是由于我使用的tabscript没有成功处理程序这个方法不起作用。

这是一个有效的解决方案,但它可以放慢速度并以无限循环结束:

open_URL_in_tab();

while(true){
    if($('#part_of_loaded_page'){
        $('#part_of_loaded_page').editContent();
        break
    }
} 

感谢您的建议:)

3 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

 var intervalId = undefined;
 open_URL_in_tab();
 intervalId = window.setInterval(editContent, 500);

完成后调用此方法:

 window.clearInterval(intervalId);

答案 1 :(得分:1)

正如已经提到的,while循环不会有效,但计时器会帮助你。

(function() {
    function checkState() {
        var success = false; // do something to check the state
        if (!success) {
            setTimeout(checkState, 50);
        }
    }
    setTimeout(checkState, 50);
})();

答案 2 :(得分:1)

您可以使用我们的插件readyx,如下所示:

$('#waitme').readyx(function(){
   //code to run after element loading
  // $(this).css("data-status","ready"); .....
},30);

demo here