2015-06-21 69 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

非常好,謝謝你的幫助。 –