2015-06-21 57 views
0

我试图从我的每个函数内访问method2。我收到以下错误。我如何得到这个工作?jquery这里面的jQuery每个

ReferenceError: method2 is not defined

method1: function() { 
    $('tr[data-quantity]').each(function(value) { 
     this.method2(value); 
    }) 
}, 

method2: function(value) { 
    console.log('test') 
}, 

回答

1

我认为method1method2属于同一物体的定义是这样的:

var obj = { 
    method1: function(){}, 
    method2: function(){} 
}; 

你可以试试:

method1: function() { 
     var self = this; 
     $('tr[data-quantity]').each(function(value) { 
      self.method2(value); 
     }) 
    }, 

    method2: function(value) { 
     console.log('test') 
    }, 
+0

是的,对不起,我以为是因为我包含了逗号,所以它是完美的,它是什么导致了这种情况发生?它失去了它的对象引用对jQuery的每个函数吗? –

+1

@Code Junkie:JavaScript中的'this'基于上下文而改变:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this。在你的情况下,当它进入当前迭代的当前项目“jquery.each”时,上下文已经改变。 –

+0

非常好,谢谢你的帮助。 –