[英]Close dropdown by clicking outside
我不太了解為什么我的腳本不起作用:
$(() => {
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
元素時, .passengers-main-dropdown
列表將變為.active
。 通過單擊文檔,算法檢查:
.passengers-main-dropdown
是點擊的目標 我做錯了嗎? 謝謝。
我通常使用closest()
:
$(document).on('click', function(e){
var $tgt = $(e.target);
if($tgt.closest('.passengers-main-dropdown').length
|| !$tgt.closest('.dropdown-box').length) {
drop.removeClass('active');
dropdown.removeClass('active');
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.