2016-11-22 14 views
0

別のプロトタイプ関数内でプロトタイプ関数を呼び出す方法onclick JavaScriptのイベントですか?プロトタイプ関数onclickイベント内でプロトタイプ関数を呼び出す方法

function foo(){ 
    this.table = ''; 
} 

foo.prototype.abc = function(){ 
    this.table = document.getElementById("tableID"); 
    if (table != null) { 
     for (var i = 0; i < table.rows.length; i++) { 
      for (var j = 0; j < table.rows[i].cells.length; j++) 
      table.rows[i].cells[j].onclick = function() { 
       this.xyz(this); 
      }; 
     } 
    } 
} 

foo.prototype.xyz = function(tableCell){ 
    alert(tableCell.innerHTML); 
} 

私はちょうど私のエラーを示す、ブラウザではなくJSFiddle JS Fiddle

function tableText(tableCell) { 
    alert(tableCell.innerHTML); 
} 

それが正常に動作します代わりにthis.xyzのこのtableText関数を呼び出しますが、this.xyzはコンソールthis.xyz(this)にエラーが発生します使用すると、関数ではない場合

答えて

0

このブロックでは、

table.rows[i].cells[j].onclick = function() { 
    this.xyz(this); 
}; 

thisfooではなくtdのHTMLオブジェクトを表します。 fooの参照を保持し、onclickの関数に渡す必要があります。

関連する問題