所有其他JS执行后运行jQuery

jer*_*ome 13 javascript jquery dom dynamic

在过去,我已经使用$(window).onload在其他脚本加载后运行一段代码.在这种情况下,我无法更改JS文件的加载顺序,而我所关注的代码需要操作由另一个在页面下方加载的JS文件动态插入的DOM节点.两个脚本都位于文档底部附近.有没有人对这种情况有任何建议?

Mat*_*all 20

如果您知道期望的元素,可以使用setInterval轮询DOM来查看它们何时被插入.例如,这是您可以使用ID轮询元素的方法foo:

$(window).load(function ()
{
    var i = setInterval(function ()
    {
        if ($('#foo').length)
        {
            clearInterval(i);
            // safe to execute your code here
        }
    }, 100);
});
Run Code Online (Sandbox Code Playgroud)


SLa*_*aks 0

如果其他脚本完全在加载事件中执行,您可以向同一事件添加处理程序并将代码放入调用中setTimeout(延迟1),这将强制您的代码在下一次中断期间执行。