javascript - 我重构的香草 JS 按钮单击不起作用
问题描述
我正在将 jQuery web sdk 重构为 vanilla JavaScript 。
原始的 jQuery 文件有一个按钮单击,如下所示:
sdk.initialize().then(function() {
$('#loginButton').click(function() {
// more logic in here
});
});
我像这样开始我的重构:
sdk.initialize().then(() => {
document.querySelector('#loginButton').addEventListener('click', (event) => {
event.preventDefault();
console.log('you clicked me!');
});
});
如果代码看起来正确,则可能是范围问题,因为这是在 RequireJS 内部,如下所示:
require(['XmSdk', 'XmUIHandler'], (xm, xmui) => {
const sdk = XmSdk();
// the above code resides in here
});
当我单击按钮时,我没有得到任何输出,也没有错误。
我什至试过这个:
sdk.initialize().then(() => {
console.log('initialized!');
}).catch((err) => {
console.log('Failed to initialize');
});
我没有输出,也没有错误。
解决方案
尝试使用函数,而不是事件处理程序上的箭头函数
sdk.initialize().then(() => {
document.querySelector('#loginButton').addEventListener('click', function(event){
event.preventDefault();
console.log('you clicked me!');
});
});
推荐阅读
- python - 使用python的井字游戏
- xcode - 无法为 M1 模拟器编译。链接为 iOS 构建的目标文件,文件 ... 用于架构 arm64
- google-apps-script - 使用 Google 表格中的复选框刷新 importHTML 的脚本
- google-classroom - 通过 Gaurdian 访问学生数据
- javascript - 如何在不发出大量请求的情况下使用 AJAX 进行实时聊天(100 / 分钟)
- python - imagedatagen.flow_from_directory() - 随机测试集预测?
- javascript - 在 vue 路由器中,是否可以使用 HTML5 历史模式使用动态路由?
- python - opencv - 使用二进制掩码将图像的一部分替换为另一个,但别名行会阻止良好的结果
- r - 数据框能做什么而 tibble 不能?
- javascript - 有没有办法阻止 Gatsby 在单击没有 href 的元素时刷新页面?