的問題可能是你缺少一個)
[1]嘗試:
var me = $(this);
var generation = $(window).width() > 767 ? 'parent' : 'children';
if (!me.is(e.target) && !me.is(($(e.target)[generation])())) {
me.removeClass(activeClass);
}
[2]或爲什麼不這樣做:
var me = $(this);
var generation = $(window).width() > 767;
if (!me.is(e.target) && ((generation == true && !me.is($(e.target).parent())) || (generation == false && !me.is($(e.target).children())))) {
me.removeClass(activeClass);
}
[3]或本:
var me = $(this);
if ($(window).width() > 767 && !me.is(e.target) && !me.is($(e.target).parent())) {
me.removeClass(activeClass);
} else if (!me.is(e.target) && !me.is($(e.target).children())) {
me.removeClass(activeClass);
}
[4]或這樣的:
var me = $(this);
var check = $(window).width() > 767 ? $(e.target).parent() : $(e.target).children();
if (!me.is(e.target) && !me.is(check)) {
me.removeClass(activeClass);
}
如果這段代碼存在嗎?如果它在事件處理程序中,則'this'與'e.target'相同,所以'!me.is(e.target)'永遠不會是錯誤的。 – Barmar