为什么在我的函数之前提醒函数

Vij*_*and -2 javascript jquery

这是我的代码:FIDDLE

function ivideos() {
     $('#n1').html('hello');
     $('#n2').html('hello');
     $('#n3').html('hello');
     $('#n4').html('hello');
     $('#n5').html('hello');
}
ivideos();
alert("alert called");
Run Code Online (Sandbox Code Playgroud)

我不知道为什么在我的函数完成之前调用警报。请帮我。

Joh*_*n S 5

直到调用完成alert()后才会进行调用ivideos(),但您看不到调用的结果,ivideos()因为浏览器尚未重新绘制元素。

您显示的代码全部在单个事件中执行。浏览器可以选择等待,直到完成执行该事件,直到重新绘制视口。

您可以使用该setTimeout()函数将调用推alert()送到后续事件。这样浏览器将在调用之前重新绘制元素alert()

setTimeout(function() {
    alert("alert called");
}, 0);
Run Code Online (Sandbox Code Playgroud)

jsfiddle

请注意alert(), 、confirm()、 和 的prompt()独特之处在于它们暂停当前事件的执行。