这是我正在尝试做的一个简单的例子。我正在尝试让我的包装函数myElements
返回来自下划线每个迭代器的元素。我可以在_.each
函数中找出els的值,但是当我从buttonClickListener
调用时,如何让我的函数返回这些值?
buttonClickListenr: function(event){
if ( $(event.target).is( myElements() )) return;
..// otherwise move on in my event phase
}
myElements: function(){
var filter=['a','b'];
_.each(filter, function(el){
return el
});
}
答案 0 :(得分:1)
each
函数将为每个元素调用一次回调,而不是按预期对返回值进行分组。相反,您需要将它们存储在each
方法完成后持续存在的结构中
尝试以下
getNums: function(){
var filter=['20','2'];
var result = [];
_.each(filter, function(num){
result.push(num);
});
return result;
}
修改强>
OP澄清他们只是想看看event.target
是否在数组中。在这种情况下,您只想使用indexOf
方法。例如
getNums: function() {
return ['20', '2'];
},
buttonClickListener: function(event){
if (this.getNums().indexOf(event.target) >= 0) {
// It's present
}
}
答案 1 :(得分:0)
你想要做的事情并没有多大意义。 'include'运算符可能对您更有用:
if ( _(filter).include($(event.target)) ){ return; }