我试图选择一个DOM元素并将其存储在一个对象中,然后通过单击事件访问它。
this._elements.convertButton.click(function(e) {
_this.convertButtonClicked.notify();
});
如果我最初使用JQuery选择元素,就可以了
{ convertButton: $("#convert") }
但是,如果我不使用JQuery,则单击不起作用
{ convertButton: document.getElementById("convert") }
虽然使用Jquery不是一个主要问题,但我只是想了解如何使用纯javascript使其工作,以及为什么单击JQuery对象而不是普通对象很好。
发布于 2016-11-28 16:28:56
有两种解决办法:
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对象中。
发布于 2016-11-28 15:42:27
需要使用addEventListener
this._elements.convertButton.addEventListener("click",function(e) {
_this.convertButtonClicked.notify();
});
https://stackoverflow.com/questions/40855415
复制