2016-11-28 23 views
0

DOM要素を選択してオブジェクトに格納し、後でクリックイベントでアクセスしようとしています。私は当初、すべてが素晴らしいですjQueryのを使用して要素を選択した場合、私はjQueryのを使用していない場合はjavascriptオブジェクトに保存されている要素をクリックしてください。

this._elements.convertButton.click(function(e) { 
    _this.convertButtonClicked.notify(); 
}); 

しかし

{ convertButton: $("#convert") } 

は、クリックは動作しません

{ convertButton: document.getElementById("convert") } 

のjQueryを使用することはありませんが私が単純に純粋なjavascriptを使用して動作させる方法と、クリックがJQueryオブジェクト上で正常なオブジェクトではなく正常に動作するようにする方法の明確化を探していました。

+0

jQueryオブジェクトの[* click *メソッド](http://api.jquery.com/click/)( '$( 'convert')'からの戻り値)は[* click *メソッド](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click)を開きます。 – RobG

答えて

1

2種類の溶液:

1.のjQuery:

$(this._elements.convertButton).click(function(e) { 
    _this.convertButtonClicked.notify(); 
}); 

2.平野Javascriptを:

this._elements.convertButton.addEventListener('click', function(e) { 
    _this.convertButtonClicked.notify(); 
} 

説明: とは何でしょう起こっていることthis._elements.convertButtonは、要素のインスタンスではなく、jQueryオブジェクトであるので、jQueryの.click()方法は使用できません。代わりに標準.addEventListener('click', ...を使用するか、$(this._elements.convertButton)を使用してthis._elements.convertButtonをjQueryオブジェクトにラップすることができます。

2

addEventListenerを使用する必要があります。

this._elements.convertButton.addEventListener("click",function(e) { 
    _this.convertButtonClicked.notify(); 
}); 
関連する問題