2010-06-01 2 views
0

Я пытаюсь достичь чего-то действительно основного, но jquery не делает то, что я ожидаю! У меня есть div с идентификатором «stuff». В css я устанавливаю атрибут display как «none» с целью его изменения с помощью jquery. Таким образом, div скрыт, если только пользователь не включил js. Мой код jquery простоСтранное поведение jQuery

$("#stuff").show(); 

К сожалению, это не работает, и div остается скрытым.

ОБНОВЛЕНИЕ: Кажется, он работает ВМЕСТЕ в Chrome и IE8. Все еще не в ff.

+3

Вы завернули его в обработчик 'ready'? – Sarfraz

+1

Можете ли вы опубликовать все соответствующие коды? –

+0

Работает для меня; http://www.jsfiddle.net/unTWA/ – Matt

ответ

4

Убедитесь, что ваш код, выполняемый, когда DOM готов, как это:

$(function() { 
    $("#stuff").show(); 
}); 

$(function() {}) is short for $(document).ready(function() { });, это запускает код, когда DOM готов, например, ваш div на самом деле там, чтобы найти. В противном случае ваш селектор (если это не будет в конце вашего <body>), вероятно, не находит ничего. Вы можете увидеть это, поставив alert($("#stuff").length);, где ваш код сейчас, если он оповещает 0, это, скорее всего, проблема.

+0

Это более чем проблемы, когда вы выполняете свою функцию до того, как фактическое содержимое html анализируется в DOM, поэтому оно не существует. запустив функцию, когда DOM полностью загружен более чем вероятно, ваш div будет в области видимости. – RobertPitt

+0

См. Выше комментарий ... Кроме того, хотя я не пробовал оповещение, он отображается как ожидаемый как часть DOM с оригинальными правилами CSS, когда я проверяю HTML в firebug. – musoNic80

+1

@ musoNic80 - Что показывает предупреждение? Игнорирование отладочных советов, которые мы даем, и предоставление только одной строки кода без разметки - не лучший способ найти проблему ... –

Смежные вопросы