2017-09-14 6 views
-1

javascriptオブジェクトの参照について混乱します。 私はこのようなタグがある場合:カスタムjavascriptオブジェクトのonclickタグを設定するには?

<button id='myButton'>Hello</button> 

を、私はJavaScriptでカスタムクラスを作る:

この機能は、「こんにちは」というテキストと、それは意志を示して警告ポップアップがあるから、私が何を期待
function myClass(){ 
    this.myButton= document.getElementById('myButton'); 

    this.myButton.addEventListener("click",function(){ 
     alert(this.myButton.innerHTML); 
    }); 
} 

しかし、私が得たことは次のとおりです。

TypeError: this.myButton is undefined 

その後、私は機能を変更するためにやってみてください。

function myClass(){ 
    this.myButton= document.getElementById('myButton'); 

    this.myButton.addEventListener("click",function(){ 
     alert(this.myButton); 
    }); 
} 

そして、私が得たものは、 "未定義"というアラートポップアップです。私の問題を解決するための任意のアイデア?

答えて

1

あなたが宣言インライン関数のためのthisので

function myClass(){ 
    this.myButton= document.getElementById('myButton'); 
    var self = this; 

    this.myButton.addEventListener("click",function(){ 
    alert(self.myButton); 
    }); 
} 

windowオブジェクトを参照して使用する必要があります。

+0

これは機能します。私はそれについて以前は分かりません。ありがとう。 – user2265229

関連する問題