2011-10-14 112 views
4

这是我试图做的一个简单的例子。我试图让我的包装函数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

你试图做的事情没有意义。该“包括”运营商可能更对您有用:

if (_(filter).include($(event.target))){ return; }

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 
    } 
} 
+0

正确的,但这种返回数字的ARRY。我想能够调用这个if(bla.is(getNums())...做一些事情,所以我希望能够使用返回的值逐个检查is方法 – Chapsterj

+0

@Chapsterj这真的不清楚你想要什么功能,然后你可以尝试给一个更大的例子吗? – JaredPar

+0

为什么不'if(getNums.length> 0){...'? –