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

时间:2015-11-02 17:58:20

标签: javascript jquery

我想改变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);
}

无论屏幕尺寸如何,这都无能为力,也不会引发错误......

如果我记录变量     代 在事件的控制台上根据屏幕大小检查返回正确的字符串,所以我必须搞砸写入方法的方式。

有人有见识吗?

2 个答案:

答案 0 :(得分:2)

问题可能是您错过了)

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

答案 1 :(得分:0)

为什么不简单地使用:

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