javascript - 如何在 javascript 的类中正确添加事件侦听器?
问题描述
我昨天发现JS中有类。所以我开始玩一点点,但我的代码不正确:
var someImg = "blabla.png";
class Piece {
constructor(position, image, value) {
this.image = image;
this.position = position;
this.value = value;
}
setPieces() {
document.getElementById(this.position).innerHTML = "<img width='50' src='" + this.image + "'>";
document.getElementById(this.position).addEventListener("click", this.ShowMoves);
}
showMoves() {
console.log(this) //shows html element (<div class=...), instead of an object
this.value = "new value"; // so this doesn't work
}
}
piece = new Piece("someid", someImg, "some value");
piece.setPieces();
基本上,我在这里要做的是将onclick
事件附加到每个调用setPieces()
方法的对象,然后使用该对象。但是,this
关键字返回的是HTML element
,而不是object
。我想我明白为什么会发生这种情况,但无法弄清楚添加点击事件并且不会丢失我的对象的方法。
解决方案
推荐阅读
- c# - C#使用simpleJSON获取随机对象
- javascript - 如何在我的 chrome 扩展程序中捕获/拦截网页的控制台日志?
- bash - 具有恒定时间提取的纯 bash 3 关联数组
- functional-programming - 表达式和子表达式 Ocaml
- ios - 快速创建在下拉菜单中显示数据的搜索栏
- c++ - C++ - 在没有自定义交换功能的情况下移动赋值运算符?
- javascript - 没有正文元素无法下载或复制 SVG
- python - 删除重复的分隔符熊猫
- python - 将秒转换为小时并在 Python 中获取输入和使用函数
- javascript - 无法使用 nodemailer 通过电子邮件发送图像附件