2011-06-29 7 views
1

私はそうのようなJavaScriptオブジェクトを作成しています:どのようにプロパティのonclickメソッドを使ってjavascriptオブジェクトを参照できますか?

function pager(elementId) { 
    this.totalPages = 5; 
    this.currentPage = 1; 

    var nextPageImage = document.createElement("img"); 
    nextPageImage.src = "img/next.png"; 

    nextPageImage.onclick = function(){ 
     if (this.currentPage+1 <= this.totalPages) 
     { 
      this.currentPage +=1; 
     } 
    } 

    document.getElementById(elementId).appendChild(nextPageImage); 
} 

私はページ上のdivのIDを渡すことによって、オブジェクトのインスタンスを作成します。

myPager = new pager('pagerDiv'); 

問題はその 'ですonclick関数の中にあるthisはページャオブジェクトではなく、画像自体を参照します。私は 'myPager'を使用してページャオブジェクトを参照できますが、それはあまり実用的ではありません。

どのようにオブジェクトをimage onclick関数内から参照できますか?

答えて

3

「これを」を表すローカル変数を作成し、それを使用します。

function pager(elementId) { 
    this.totalPages = 5; 
    this.currentPage = 1; 
    var th = this; 

    var nextPageImage = document.createElement("img"); 
    nextPageImage.src = "img/next.png"; 

    nextPageImage.onclick = function(){ 
     if (th.currentPage+1 <= th.totalPages) 
     { 
      th.currentPage +=1; 
     } 
    } 

    document.getElementById(elementId).appendChild(nextPageImage); 
} 
関連する問題