我在点击事件上无法在页面上正常工作。我有一个ID为“ icon”且其类为“ lock”的Div,并且我希望能够单击此Div的背景图像将类从“ lock”更改为“ locked”。
在发生任何混乱之前,我在外部CSS文件中都有这两个类,并且它们向Div添加了背景图像。另外,我不想使用JQuery,但要使用带有功能的addEventListener。到目前为止,这是我的JS的样子:
var elLock = document.getElementById('icon');
function changeLock(){
var imgSwitch = elLock.getAttribute('class');
if(imgSwitch !== 'unlock'){
elLock.className = 'unlock';
}else{
elLock.className('lock');
}
}
elLock.addEventListener('click', changeLock, false);
所需的结果是此youtube视频中的内容:https://www.youtube.com/watch?v=oI2sRCN7CiM
任何帮助将不胜感激。我很乐于从我犯的错误中学习。
最佳答案
我会使用Element.classList
属性,而不是您在这里做的事...
然后,您可以简单地执行以下操作:
elLock.addEventListener('click', function() {
elLock.classList.toggle('lock') },
false);
并将
unlock
保留为元素上的默认类。每次单击该元素,它都会打开和关闭lock
类,并且您可以使用CSS的级联属性覆盖默认unlock
类上的背景属性。