jquery - 为什么alert在jquery的css方法之前运行

标签 jquery

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/

相关文章:

javascript - 根据用户是否投票在布局中设置样式

php - 403禁止的错误-执行和Ajax页面

jquery - 遍历隐藏的li元素

jquery &lt;input type ="text"name ="quantity[1]"/> 按名称获取

javascript - 我们需要验证 jqgrid 中的输入吗?

javascript - 对 Django 服务器的简单 Ajax 调用导致响应时间很慢 - 慢 TTFB

javascript - 当页面上的输入更改时,主干 View 事件不会触发

javascript - 显示或隐藏 div,取决于复选框

android - ajax jquery 代码不适用于 android -Phonegap-

jquery - 漂亮的照片库在屏幕上打开得太低,并且当您向下滚动时会向下移动