Ответ 1
Вы хотите использовать селектор :not()
:
jQuery(":not(.ignore)").bind("click", function(e) { ... });
Я ищу способ выбрать все элементы на странице, кроме тех, у которых указано место DOM. Вот пример того, что я хотел бы сделать:
jQuery('*').except('.ignore').bind('click', function(e) { ... });
Возможно ли это в "native jQuery"?
Вы хотите использовать селектор :not()
:
jQuery(":not(.ignore)").bind("click", function(e) { ... });
Другой способ, если у вас уже есть селектора для обоих:
$('.foo').not('.ignore').bind(...);
Кроме того, больше фильтров.
jQuery not-selector для спасения!
$('*:not(.ignore)').bind('click', function(e) { ... });
С другой стороны, делать что-то с каждым элементом на странице одновременно является неприятным. Там лучший способ. Я бы рекомендовал привязать к телу, а затем игнорировать клики по некоторым элементам:
$(document.body).click(function(e){
if($target.closest('.ignore').length) return true;
...
});
... Или используя jQuery 1.3 .live()
, который делает это для вас:
$(":not(.ignore)").live(function(e){
...
});