關閉下拉我不明白爲什麼我的腳本不工作:通過點擊外
$(() => {
let dropdown = $('.passengers-main-dropdown'),
drop = dropdown.siblings('.dropdown-box');
dropdown.on('click', function(){
$(this).addClass('active');
drop.addClass('active');
});
$(document).on('click', function(e){
if(dropdown.is(e.target) || !drop.is(e.target) || drop.has(e.target).length === 0) {
drop.removeClass('active');
dropdown.removeClass('active');
}
});
});
的這裏的邏輯是:與類.passengers-main-dropdown
然後下拉成爲.active
元素上點擊時。並通過點擊文件,算法用於檢查:
- 下拉不是點擊
.passengers-main-dropdown
的目標是點擊- 的目標的任何下拉的子元素都沒有點擊的目標
我做錯了嗎?謝謝。
閱讀有關stopPropagation – ixpl0
@ iXplo'stopPropagation()'是一個非常糟糕的主意,因爲它可以防止其它腳本。 – JamesJGoodwin