【发布时间】:2016-02-03 14:13:07
【问题描述】:
我正在通过 jQuery ready 事件发现以下内容:
传递给
.ready()的处理程序保证在DOM 准备好后执行,因此这通常是附加所有其他事件处理程序和运行其他jQuery 代码的最佳位置。使用依赖 CSS 样式属性值的脚本时,在引用脚本之前引用外部样式表或嵌入样式元素非常重要。
我猜这意味着如果我在运行 jQuery 代码后设置任何 CSS 属性,它的值将不会反映在 jQuery 代码中。但是,代码正确地提取了值。我错过了什么吗?这是我的代码:
<head>
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script>
$(document).ready(function() {
var theColor = $('p').css('color');
$('p').text(theColor);
});
</script>
</head>
<body>
<p>Some Text!</p>
<style>
p{ color: rgb(29,65,92); }
</style>
</body>
据我了解,在这种情况下,文本不应该更改为rgb(29,65,92),但确实如此。这里的解释是什么?
编辑:如果代码返回正确的值是因为它包含在 ready 中,那么下面的语句是什么意思?
当使用依赖 CSS 样式属性值的脚本时, 引用外部样式表或嵌入样式很重要 引用脚本之前的元素。
【问题讨论】:
-
但是您已经将您的代码包装在
.ready处理程序中!这不是您发布的声明的反例。 -
什么是“当使用依赖 CSS 样式属性值的脚本时,在引用脚本之前引用外部样式表或嵌入样式元素很重要。”那么暗示呢?
-
这意味着您需要以正确的顺序引用脚本和样式表或延迟脚本的执行直到应用样式(这是
.ready所做的在你的例子中)。 -
@blindProgrammer Nope.
标签: javascript jquery html css