Jquery: not (: first) .hide () не работает в Internet Explorer - PullRequest
1 голос
/ 28 сентября 2010

Я использую JQuery 1.4.2 для эффекта аккордеона на моем сайте.Все, кроме одной категории, начинают скрываться.Это работает в Chome и недавних Firefox, старых версиях Safari и всех версиях Internet Explorer, однако начинаются с ВСЕГО скрытого.Есть ли несовместимость с этими браузерами или что-то не так с моим кодом?

$(document).ready(function() {
        $('div.chapter:not(:first)').hide();
        $('h2.caption').click(function() {
            $('div.chapter:visible').slideUp("slow");
            $(this).next().slideDown("slow");
        });
        return false;
    });

Очевидно, что содержание глав находится внутри div.chapter.

Вотпример страницы с моим кодом

1 Ответ

4 голосов
/ 28 сентября 2010

Используйте :gt(), чтобы получить все, кроме первого, например:

$('div.chapter:gt(0)').hide();

Это работает в кросс-браузерном режиме и не вызывает проблем с селектором, оно скрывает все, что больше индекса 0, так что все, кроме первого. :first не предназначен для использования внутри :not(), так что это немного странный случай, а не первый .... чего? Если вы рассмотрите случаи, вы можете увидеть, как :not(:first) довольно неоднозначно, он предназначен для использования сам по себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...