Подтвердить что ты не робот

JQuery: Зацепить всех, кроме ___?

Я ищу способ выбрать все элементы на странице, кроме тех, у которых указано место DOM. Вот пример того, что я хотел бы сделать:

jQuery('*').except('.ignore').bind('click', function(e) { ... });

Возможно ли это в "native jQuery"?

4b9b3361

Ответ 1

Вы хотите использовать селектор :not():

jQuery(":not(.ignore)").bind("click", function(e) { ... });

Ответ 2

Другой способ, если у вас уже есть селектора для обоих:

$('.foo').not('.ignore').bind(...);

Кроме того, больше фильтров.

Ответ 3

jQuery not-selector для спасения!

$('*:not(.ignore)').bind('click', function(e) { ... });

Ответ 4

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

$(document.body).click(function(e){
    if($target.closest('.ignore').length) return true;
    ...
});

... Или используя jQuery 1.3 .live(), который делает это для вас:

 $(":not(.ignore)").live(function(e){
    ...
});