2016-11-28 12 views
0

我試圖選擇一個DOM元素並將其存儲在一個對象中,然後通過點擊事件來訪問它。點擊存儲在javascript對象中的元素不能正常工作

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

如果我使用JQuery所有的罰款最初選擇的元素

{ convertButton: $("#convert") } 

但是,如果我不使用JQuery點擊不起作用

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

在使用jQuery是不是一個主要的問題,我只是尋求澄清如何使它使用純JavaScript工作,以及爲什麼點擊罰款的JQuery對象,而不是普通的對象。

+0

jQuery對象的[* click * method](http://api.jquery.com/click/)(從$('convert')'返回)與[* click *方法](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click)。 – RobG

回答

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(); 
});