首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击存储在javascript对象中的不工作元素

单击存储在javascript对象中的不工作元素
EN

Stack Overflow用户
提问于 2016-11-28 23:39:39
回答 2查看 60关注 0票数 0

我试图选择一个DOM元素并将其存储在一个对象中,然后通过单击事件访问它。

代码语言:javascript
运行
复制
this._elements.convertButton.click(function(e) {
    _this.convertButtonClicked.notify();
});

如果我最初使用JQuery选择元素,就可以了

代码语言:javascript
运行
复制
{ convertButton: $("#convert") }

但是,如果我不使用JQuery,则单击不起作用

代码语言:javascript
运行
复制
{ convertButton: document.getElementById("convert") }

虽然使用Jquery不是一个主要问题,但我只是想了解如何使用纯javascript使其工作,以及为什么单击JQuery对象而不是普通对象很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-29 00:28:56

有两种解决办法:

1. jQuery:

代码语言:javascript
运行
复制
$(this._elements.convertButton).click(function(e) {
    _this.convertButtonClicked.notify();
});

2.平原Javascript:

代码语言: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对象中。

票数 1
EN

Stack Overflow用户

发布于 2016-11-28 23:42:27

需要使用addEventListener

代码语言:javascript
运行
复制
this._elements.convertButton.addEventListener("click",function(e) {
    _this.convertButtonClicked.notify();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40855415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档