javascript - 将模块中的函数绑定到 onclick 事件
问题描述
我有一个带有以下脚本的 html 文件:
<script type="module" src="js/app.js"></script>
这是我将我的应用程序逻辑与其他导入一起放置的地方。在这个app.js
文件中,我有一个名为test()
;
function test() {
console.log("aaa");
}
onclick
在使用以下代码动态附加的 HTML span 元素中的事件中调用此函数:
buildSideBar(technologies) {
if(technologies.length > 0) {
let spans = ``;
const loader = document.getElementById('loader');
const sidebar = document.getElementById('sidebar');
for(const technology of technologies) {
spans += `<span onclick="test()">${technology}</span>`;
}
loader.style.height = '0';
loader.style.visibility = 'hidden';
sidebar.innerHTML += spans;
sidebar.classList.remove('hidden');
}
}
跨度按预期添加,但是,当我按下它们时,我得到一个错误:
未捕获的 ReferenceError:测试未
在 HTMLSpanElement.onclick 处定义((索引):1)
我在这里做错了什么?
解决方案
该test()
功能在模块外部不可见,解决方案是将其添加到window
对象中以便可以访问。
window.test= test;
正如@VLAZ 提到的,还有将跨度动态绑定到onclick 的解决方案。
推荐阅读
- javascript - javascript中的正则表达式无法按预期工作
- node.js - 表单提交什么都不发送/req.file 在后端未定义
- javascript - 无论多深,如何将道具从父样式组件传递到其子样式组件
- javascript - 是否可以在 React Native(iOS 和 Android)中使用 WebRTC 共享特定的视图/组件?
- html - 页脚未在页面上正确显示
- here-api - HERE 地理编码 API - 在本地数据库中存储位置地理编码
- python - 通过 BAT 脚本 Ru python 脚本
- git - 我如何应用从电子邮件中获得的补丁,但一次更改一个?
- flags - 关于我的 C 盘中缺少 Windows 标志图标
- tensorflow - Tensorflow RNN LSTM 输出解释