Могут ли 2 CSS-класса активировать один и тот же скрипт? - PullRequest
1 голос
/ 15 июня 2009

приведенный ниже скрипт заставляет страницу исчезать при нажатии на ссылки, которые имеют class = "nav".

Я бы хотел, чтобы скрипт также активировался таким же образом для ссылок, которые имеют class = "home".

Как бы это сделать? Есть ли такая вещь, как $ ('. Nav & .home') ??

Спасибо

<script type="text/javascript">
$('.nav').click(function(){
        var url = $(this).attr('href');

        $('.mask').fadeIn('medium', function(){
            document.location.href = url;
        })
        return false;
    });

});

Ответы [ 3 ]

10 голосов
/ 15 июня 2009

Вы можете просто использовать запятые для указания нескольких селекторов :

$('.nav, .home').doSomethingToBoth();

Менее известной альтернативой является использование add:

$('.nav').doSomethingToNavs().add('.home').doSomethingToBoth();

Я должен также добавить, что выбор .class происходит медленно. Если вы знаете, что только элементы <a> будут иметь классы .nav и .home, вы должны написать свой селектор так:

$('a.nav, a.home').click(...);

Без этого jQuery будет вынужден просматривать каждый отдельный элемент в документе, чтобы увидеть, имеет ли он указанный вами класс, в отличие от поиска только <a> элементов с собственным getElementsByTagName И ТОГДА посмотреть, есть ли у них указанный класс. Это просто хорошая практика, чтобы иметь в виду.

1 голос
/ 15 июня 2009

$ ('. Nav, .home') ...

0 голосов
/ 15 июня 2009
$(".nav, .home")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...