Вопрос:

Что является противоположностью селектора jisu .is ()?

jquery jquery-selectors

2532 просмотра

4 ответа

1251 Репутация автора

Я пытаюсь сделать функцию наведения с помощью is()селектора. Но мне нужно наоборот!

$('.tray .tab').is(".active").hover(
...function
);

Я попробовал not()селектор, но это метод фильтрации, поэтому он не работает так, как я хочу.

$('.tray .tab').not(".active").hover(
...function
);

Я пытаюсь сделать так, чтобы при наведении на элемент, содержащий класс active, функция не выполнялась.

<div class='tray'>
    <div class='tab'>Tab 1</div>
    <div class='tab active'>Tab 1</div>
    <div class='tab'>Tab 3</div>
</div>

Я знаю, что это может быть достигнуто путем проверки if( $(this).is('.active') ){}, но разве нет прямого способа сделать это? Заранее спасибо!

[РЕДАКТИРОВАТЬ:]

Я думаю, это not()метод, который мне нужен! Но когда элемент начинается с класса, activeон работает, а когда я добавляю его с addClass()ним - нет. Как так?

Автор: Jay Wit Источник Размещён: 02.04.2013 11:06

Ответы (4)


7 плюса

11410 Репутация автора

Этот блог посвящен именно тому, о чем вы спрашиваете:

http://ajpiano.com/the-opposite-of-jquerys-is-method-is-not-not-it-is-is/

Самая последняя строка этого говорит:

Противоположности метода jQuery .is()нет .not().

Автор: Adam Plocher Размещён: 02.04.2013 11:10

3 плюса

8122 Репутация автора

Вы можете использовать is()в сочетании с :notселектором.

if( $(this).is(':not (.active)') ){}

Вот jsFiddle, основанный на документации Jquery для is():

http://jsfiddle.net/Hjff5/

Автор: Simon C Размещён: 02.04.2013 11:13

1 плюс

126037 Репутация автора

Решение

is возвращает логическое значение и не является цепным методом, так как он не возвращает объект jQuery, используйте делегирование события.

$('.tray').on({
   mouseenter: function(){
     // ...
   },
   mouseleave: function(){
    // ...
   }
}, '.tab:not(.active)');
Автор: undefined Размещён: 02.04.2013 11:20

0 плюса

307 Репутация автора

Я знаю, что это старый, но это хорошо для справки. Чтобы проверить, отключен ли элемент, используйте jQuery.

ЯВЛЯЕТСЯ:

if($(this).is('.disabled')){
    // Do something
}

НЕ ЯВЛЯЕТСЯ:

if(!$(this).is('.disabled')){
    // Do something
}
Автор: Stephen Размещён: 30.01.2018 10:19
Вопросы из категории :
32x32