Jquery «скрыть при загрузке» вызывает ошибку Javascript - PullRequest
0 голосов
/ 23 октября 2010

Я пытаюсь написать меню, подпункты которого исчезают при загрузке страницы.

Если вам нужен полный HTML, я скопирую его, однако он просто состоит из набора DIV, элементы под заголовками имеют класс subitems.

Мне удалось сделать то, что мне нужно, с помощью:

   $(document).ready(

    $(".subitems").hide()

   );

Однако в Chrome, несмотря на то, что он работает нормально, в консоли появляется следующая ошибка:

alt text (Используя изображение, поскольку я не могу хорошо скопировать форматирование)

Когда я удаляю приведенный выше код, появляется ошибка. Я думаю, что сделал что-то не так, но я не вижу этого, и пока он работает в каждом браузере, который я тестировал.

Любые предложения:

  1. Я сделал что-то не так?
  2. Есть ли лучший способ добиться того, чего я хочу?

Ответы [ 2 ]

3 голосов
/ 23 октября 2010

Когда ошибка устранена, возможно, есть другой способ сделать это.
Я предполагаю, что вы действительно не хотите скрывать при загрузке страницы, но хотите скрыть, если активен JavaScript (вы используете готовый доступ к объектам) Если я прав, есть более простой способ. Дайте <html> класс

$('html').addClass('scripted')

(так как <html> известен каждый раз / везде, вы уже можете сделать это внутри <head>)

... тогда вы сможете скрывать объекты с помощью css и не должны ждать готовности ()

html.scripted .subitems{display:none}/*only hidden if js is off*/
3 голосов
/ 23 октября 2010

Вам не хватает обертки анонимной функции (function() { }), например:

$(document).ready(function() {
 $(".subitems").hide();
});

Он пытается сделать $(".subitems").hide().call() под прикрытием, когда выполняет обработчики ready ... но это не функция. Вместо этого он выполняет немедленно (не на document.ready) и выдает ошибку, когда document.ready пытается выполнить результат из .hide().

Просто чтобы отметить, есть и более короткая форма вышеперечисленного:

$(function() {
 $(".subitems").hide();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...