#javascript #jquery
#javascript #jquery
Вопрос:
приведенный ниже код отлично работает на jsFiddle без $(document).ready(function() {
и закрывающих скобок. (пример:http://jsfiddle.net/cEDYD / ) но как только я размещаю код на своей веб-странице с готовым документом, он перестает работать. Я что-то упускаю? Я включил jquery
<script type="text/javascript">
$(document).ready(function() {
function showDiv(element, pro2) {
if (pro2.children("option:selected").val() == "cpl") element.show();
else element.hide();
}
var myElement = $("div#pro2");
var mypro2 = $("select#ptype");
$("select").change(function() {
showDiv(myElement, mypro2)
});
});
</script>
Комментарии:
1. Что-нибудь в консоли JavaScript?
2. У меня работает нормально. Как правило, объявления функций следует оставлять за пределами области действия функции ready.
3. @jli — Я предпочитаю внутри области document ready, если это единственное место, где они используются. Да, это делает готовый документ более беспорядочным, но это может помочь предотвратить столкновения с другим кодом.
4. @nnnnnn Я думаю, в данном случае это скорее предпочтение.
5. @acctman да, у меня это работает. Я просто использую встроенную консоль для Chrome или, если я использую Firefox, я использую Firebug.
Ответ №1:
Есть ли причина, по которой вы не хотели бы, чтобы это было завернуто в обработчик document ready?
Похоже, что DOM не готов во время выполнения вашего javascript.
Проверьте консоль javascript. Google Chrome отлично подходит для отладки JS.
Комментарии:
1. я действительно хочу, чтобы он был заключен в один, в исходном примере кода теперь был готовый документ, и я пытался добавить его сам. Я заставил его работать
Ответ №2:
проблема заключалась в неправильном вводе символа в моем файле css. -спасибо за тестирование, ребята
Ответ №3:
В вашем jsfiddle есть настройка, которая автоматически переносит код в document.ready()
. Вот почему он работает без ready()
в jsFiddle (смотрите, где написано onload
на верхней левой панели).
document.ready()
необходим на обычной веб-странице, если вы не разместите javascript после основного HTML.