я проходил через JQuery ready
событие и обнаружил следующее:Почему приведенный ниже код возвращает значение цвета?
Обработчика передается
.ready()
гарантированно будет выполняться после того, как DOM готова, так что это, как правило, лучшее место, чтобы приложить все остальные обработчик событий и запустить другой код jQuery. При использовании сценариев, основанных на значении свойств стиля CSS, важно ссылаться на внешние таблицы стилей или внедрять элементы стиля перед ссылкой на сценарии.
Я предполагаю, что это означает, что если я установил любое свойство CSS после запуска кода jQuery, его значение не будет отражено в коде 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)
в этом случае, но это было сделано. Какое объяснение здесь?
EDIT: Если код возвращает правильное значение, потому что он завернут в готовое, что означает следующее утверждение?
При использовании сценариев, которые зависят от значения свойств стиля CSS, важно ссылаться на внешние таблицы стилей или встраивание в стиле элементов перед ссылкой на сценарий.
Но вы * у * завернутые свой код в '.ready' обработчика! Это не контрпример к заявлению, которое вы опубликовали. –
Что делает «При использовании сценариев, которые полагаются на значение свойств стиля CSS, важно ссылаться на внешние таблицы стилей или внедрять элементы стиля перед ссылкой на сценарии». значит, тогда? –
Это означает, что вам нужно либо ссылаться на скрипты и таблицы стилей в правильном порядке * или * задерживать выполнение скрипта до тех пор, пока не будет применен стиль (что и есть '.ready' в вашем примере). –