javascript - ES6 动态地为 HTML 元素分配一个类方法
问题描述
我正在尝试将 HTML 内容动态地放置在 div 中。单击此内容时应执行一项功能。我在课堂上有这个功能。如何将此功能分配给 onclick 方法。一个精简的样本(不工作)here。我知道我可以分配一个 onclick 事件侦听器,但我想知道如何实现
class A{
log(){
console.log('test')
}
}
class B extends A{
write(){
let z = '<span class="botSmartButtonSpan" onclick="super.log()"></span>';
document.getElementById('x').innerHTML=z;
}
}
let obj = new B();
obj.write();
解决方案
onclick
属性值在不同的范围内进行评估。super
没有在那里定义。你不能通过将字符串混合在一起来实现这一点。
改用 DOM 方法。
write(){
let z = document.createElement("span");
z.classList.add("botSmartButtonSpan");
z.addEventListener("click", () => this.log());
document.getElementById('x').appendChild(z);
}
推荐阅读
- spring-boot - 由于我添加了嵌入式 ActiveMQ,因此 Spring Boot 应用程序不会在“eb deploy”上退出
- php - 在while循环中运行MYSQLI命令,该循环位于for每个循环内,但仅返回1个值
- django - 模板中未显示 Django 模型
- azure - Azure Devops API 创建生成定义
- javascript - JavaScript / React - 异步数组映射
- c# - 将 MetroFramework.Forms.MetroForm 作为参数传递给方法时的不同结果
- javascript - rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable.throw 不是函数
- algorithm - 比较两种算法的时间复杂度
- mysql - 将新的 NOT NULL 列添加到包含数据的现有表
- android - 如何将 liveData 添加到 MPandroidchart