2016-10-27 15 views
0

私のプロジェクト用にカスタムstep.jsアプリケーションを作成しています。オブジェクトスコープにエラーが発生しています。以下は、私のコードは、誰の嘆願がここでの問題は何か私を助けることができます私はこのjQuery各関数のスローエラー:キャッチされないTypeError:プロパティを読み取ることができません

this.el.stepNavLi.each(function(){ 
    alert(); 
}); 

Uncaught TypeError: Cannot read property 'stepNavLi' of undefined

を実行したときに

var STEPPED = { 
    el: { 
     stepContentDiv: $('#stepContent'), 
     stepNavDiv:  $('#stepNav'), 
     stepNavLi:  $('#stepNav li'), 
     stepNavAnchor: $('#stepNav li a'), 
     stepNavDone: $('#stepNav li a'), 
     stepNavActive: $('#stepNav li a') 
    }, 
    doActive: function(){ 
     this.el.stepNavDone.on('click', function(){ 
      this.el.stepNavLi.each(function(){ 
       alert(); 
      }); 
     }); 
    }, 
    init: function(){ 
     this.doActive(); 
    } 
} 
STEPPED.init(); 

がエラーを取得するのですか?事前に感謝します

+1

あなたのコードはthis.elを見つけることができません、それは未定義です... – Kevin

+0

はいこれは私の質問ですなぜその未定義です。しかし、それは一番上に定義されています。理解できない –

答えて

1

イベントハンドラ関数内で、thisは、​​オブジェクトではなく、クリックされた要素を参照します。クリックハンドラ内でそのオブジェクトへの参照を保持するには、オブジェクトへの参照を変数にキャッシュする必要があります。これを試してください:

関連する問題