AFAI 阅读并浏览其他问题,HTML 文档中出现的内容,按顺序执行的行。我认为同样的事情也适用于 Javascript 文件。我期望在下面的代码中,第一个背景被绘制为黄色,然后立即收到 readyyyy
消息,但完全相反的情况发生。 alert()
首先运行,然后页面呈黄色。为什么?
js代码,
$('body').css("background", "yellow");
function f() {
alert("readyyyy");
}
$(f()); // same as $(document).ready(…)
html 代码,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>Testing...</p>
<script src="jquery.js"></script>
<script src="Test.js"></script>
</body>
</html>
最佳答案
声明
$(f())
表示“调用函数f
并将其返回值传递给函数$
”。它明显不同于
$(f)
这意味着“调用函数$
并传递对函数f
的引用”。
事实上,页面在警报后变成黄色与浏览器尝试优化页面重绘的方式有关。您的 JavaScript 代码会更改页面样式,但由于代码中没有任何其他内容依赖于检查页面样式,因此重绘会推迟到 JavaScript 完成(在 alert() 之后)
返回)。
关于jquery - 为什么alert在jquery的css方法之前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153660/