Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅在DOM操作完成后继续执行_Javascript_Jquery - Fatal编程技术网

Javascript 仅在DOM操作完成后继续执行

Javascript 仅在DOM操作完成后继续执行,javascript,jquery,Javascript,Jquery,我已经看到了这一点,它建议使用setTimeOut document.getElementById('my_id').innerHTML = 'A message'; // Next should only be executed once DOM manipulation has completed .. do some stuff 然而,这是一场比赛,我不喜欢。我需要确定,也不想浪费时间等待。其中一条评论指出,即使0ms也可以工作,因为它将其放入队列中,并保证仅在DOM操作完成后执行。这是

我已经看到了这一点,它建议使用setTimeOut

document.getElementById('my_id').innerHTML = 'A message';
// Next should only be executed once DOM manipulation has completed
.. do some stuff
然而,这是一场比赛,我不喜欢。我需要确定,也不想浪费时间等待。其中一条评论指出,即使0ms也可以工作,因为它将其放入队列中,并保证仅在DOM操作完成后执行。这是绝对肯定的吗?如果是,该状态或测试在哪里


(当然,操作可能比本例更复杂。插入的HTML甚至可能包含自己执行的javascript。插入的JS执行不必完成,但渲染必须已经完成。)

您可以使用旧版或更新版

每次操作DOM时,都会触发一些事件,而不仅仅是加载事件


在本例中,您正在插入HTML,因此您至少需要侦听事件。

您应该在其他操作上从事件侦听器触发其他事件。基本上你可以有这样的东西

document.getElementById('my_id').innerHTML = 'A message';
setTimeout(function(){
     .. do some stuff 
},10);

如果只是关于渲染阶段的检测,只需监听适当的事件。什么事件?这不是初始加载,而是通过JS进行DOM操作。请阅读我的回答:当您修改DOM(添加节点、删除节点等)时,会触发一些事件。看看你的,听听:-)嗨,你解决了吗?链接到一个包含大量事件的大而长的网页并不能真正回答这个问题。我正在将一大块HTML(作为字符串)插入到另一个元素中。只是一个疑问:你在插入字符串,对吗?但是作为子树还是作为该元素的一个属性?链接说它不推荐使用。我正在做(jquery):$(“#我的id”).html(“更多html”);正如我所说,我建议您使用突变观察者而不是web事件。只是给你们两个选择,我知道我们有。
$(".button").click(function(){
// perform your actuibs and do some interesting stuffs
$(".anotherButton").click()
})

$(".anotherButton").click(function(){
// the other actions that needs to be performed after the first button clicked
})