如何根据布尔值更改jQuery方法

How to change a jQuery method depending on value of a boolean

本文关键字:jQuery 方法 布尔值 何根      更新时间:2023-09-26

我想更改jQuery方法

parent()

children()

这取决于用户屏幕的宽度。

以下是我所拥有的(相关代码片段):

var me         = $(this);
var generation = $(window).width() > 767 ? 'parent' : 'children';
if( !me.is(e.target) && !me.is($(e.target)[generation]() ) {
    me.removeClass(activeClass);
}

无论屏幕大小,这都没有做任何事情,也没有抛出错误。。。

如果我记录变量一代根据屏幕大小检查,正确的字符串返回到控制台,所以我一定是把方法的写入方式搞砸了。

这里有人有真知灼见吗?

问题可能是缺少)

[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);
}

为什么不简单地使用:

$(window).width() > 767 ? parent() : children();