我注意到Firefox中的切换类不起作用,我不确定为什么。
var contactUs = document.querySelectorAll('.contact-us')[0];
var buttonExpand = document.querySelectorAll('a.write')[0];
buttonExpand.addEventListener('click', function(e) {
contactUs.classList.toggle('js-expand-form');
console.log('click');
},false);
当我在Firefox中单击
a.write
时,没有任何反应。它适用于Chrome和IE。该问题与事件绑定和
classList.toggle
有关,因为console.log('click')
在FF中不起作用,并且当我从控制台手动键入时:document.querySelectorAll('.contact-us')[0].classList.toggle('js-expand-form')
它返回true或false,但实际上没有任何变化-被检查的元素没有获得新的类。更让我担心的是,尽管Chrome控制台中粘贴的同一行在正常情况下仍然有效,但也不会生效。
jQuery等效的
jQuery('.contact-us').toggleClass('js-expand-form')
在所有浏览器中均可使用,包括粘贴到控制台中。请参见the fiddle。
最佳答案
您可以更改链接(a.write
)上的类。我猜该链接将触发,页面重新加载和更改被冲走。
尝试添加
e.preventDefault();
在
toggle()
命令之后的处理程序中。关于javascript - classList.toggle在Firefox中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31678862/