javascript - 这是写这个的正确格式吗?它不工作
问题描述
我重新开始学习 JavaScript 并想知道为什么这不起作用。控制台中没有显示任何错误。
我用干编码让它工作,但现在我试图不使用干编码,但它不工作。
let simonLi = document.querySelector('#simon');
let simonPic = document.querySelector('#simon-pic');
let bruceLi = document.querySelector('#bruce');
let brucePic = document.querySelector('#bruce-pic');
let benLi = document.querySelector('#ben');
let benPic = document.querySelector('#ben-pic');
let pictureChange = pic => {
if (pic.className === "hide") {
pic.classList.remove("hide");
} else {
pic.classList.add("hide");
}
};
simonLi.addEventListener('click', pictureChange(simonPic));
bruceLi.addEventListener('click', pictureChange(brucePic));
benLi.addEventListener('click', pictureChange(benPic));
没有错误消息,并且假设在单击 li 时隐藏和显示图像。
解决方案
您正在将函数 pictureChange 的结果(恰好是undefined
)附加到单击事件,而不是附加函数。
您可以尝试更换
let pictureChange = pic => {
if (pic.classList.contains("hide")) {
pic.classList.remove("hide");
} else {
pic.classList.add("hide");
}
};
和
let pictureChange = pic => {
return function() {
if (pic.className === "hide") {
pic.classList.remove("hide");
} else {
pic.classList.add("hide");
}
}
};
当您使用它时,请考虑pic.classList.toggle()
改用。
推荐阅读
- android - 如何在 gradle 或 google 存储库上部署 android 库?
- mysql - SQL条件如果不存在
- debugging - OpenType 字体未对齐的表格错误
- node.js - 如何使用 API 获取电报频道中的观看次数
- python - 如何在python中获得所需的输出?
- python-3.x - 需要从python3中的文本文件中提取表格数据
- nginx - NGINX 日志在 Stackdriver 中没有 jsonPayload 字段
- python - 宽度不起作用时如何减少线条的粗细?
- amazon-web-services - aws 使用 IAM 角色从 spark 访问 s3
- ssrs-expression - SSRS 表达式中的日期格式