我想改变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);
}
无论屏幕尺寸如何,这都无能为力,也不会引发错误......
如果我记录变量 代 在事件的控制台上根据屏幕大小检查返回正确的字符串,所以我必须搞砸写入方法的方式。
有人有见识吗?
答案 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();