2013-09-16 3 views
0

Я знаю, что вы можете использовать селектор :not, чтобы исключить класс/id, но я пытаюсь использовать его с * all.jQuery найти * все кроме: нет этот класс?

if(jQuery(e.target).is(jQuery(el).find('*:not(.exit-builder)'))){ 
     return; 
    } 

Я пытаюсь исключить все элементы из мероприятия, есть веская причина, по которой я это делаю. По существу, происходит то, что при нажатии <div class="parent"> событие запускается, но все дети под родительским (вложенные дочерние элементы и все типы элементов) исключаются. Я имею в виду, что решение отлично работает для меня, но у меня есть один элемент внутри *, который нужно уволить, и это элемент с классом .exit-builder.

Я думаю, что могу повернуть * на .children().children() или что-то в этом роде, но я не думаю, что это звучит не так, что-то похожее может работать .. Неплохо взломать, надеюсь, кто-то знает, о чем я говорю :)

+0

Почему бы просто не искать '$ (this) .find (". Exit-builder ")'. Не нужно исключать все остальное, когда вы можете просто найти то, что ищете. – Archer

+0

Эй, на самом деле способ, которым мое приложение структурировано, является «$ (это)» технически. http://jsfiddle.net/zuNhX/4/ взгляните на скрипку. если бы я использовал 'this' внутри этого объекта, он ссылался бы на сам объект. –

ответ

2

Попробуйте .filter()

if(jQuery(e.target).is(jQuery(el).filter(':not(.exit-builder)'))){ 
     return; 
    } 
+1

Спасибо, что у меня есть некоторые методы перемещения. Havent использовал '.filter'yet, это не пришло в голову :) –

+0

@MichaelJosephAubry приветствуем Happy to help :) –

+0

Подождите, похоже, скоро я говорил .. причина, по которой я использовал' .find() ', была потому, что Я хотел исключить все элементы под элементом события. Я читаю, что поиск похож на '.children', по сути, я хочу, чтобы все дети из' el' были уволены в случае ... элемент - это событие. –

Смежные вопросы