我注意到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/

10-12 15:49