Я пытаюсь решить некоторую дилемму, имея немного проблемы.Напротив .find (someElem), т.е. хотите опустить детей, если e.target для обработчика событий
Итак, я хочу отслеживать все клики на странице и делать только что-то, ЕСЛИ e.target не является дочерним элементом некоторых элементов. Таким образом, у меня есть:
jQuery('body').click(function(e){
// some stuff
// do some more stuff
if(!(jQuery('#element1, #element2, #element3').find(e.target))){
// do something extra here ONLY if the target is NOT a child
// of any of those elements
}
})
Это, похоже, не работает. Я пробовал другие вещи, чтобы получить «не найденный» vibe going, ala, .not,!() И т. Д. Не смог. Кажется, игнорирует весь код. Даже когда я делаю просто: просто для проверки:
// I expressly click outside this area of element1, still captures it.
if(jQuery('#element1').find(e.target)){
console.log('in')
e.stopPropagation();
// failes
Это очень медленный способ согласования, по сравнению с проверкой из щелкнули цели обратно вверх по иерархии (то есть с помощью родителей() или аналогичный). –
@TrueBlueAussie: Еще редактирование, я писал именно это :) – Jon
Мне нравится прогулка по маршруту родителей. Просто не пришла ко мне, большое спасибо! –