Как переключить класс, используя чистый JavaScript в HTML

У меня есть <div>и я хочу переключать свои классы при наведении.

Вот мой код:

function a(){
    this.classList.toggle('first');
    this.classList.toggle('sec');
}
document.querySelector('#container').addEventListener('click', a );

Я знаю, что нет никаких проблем в моем HTML или CSS. Это просто, что я должен изменить и положить что-то вместо clickно я не знаю что.

Пожалуйста помоги!!

2 ответа

Событие при наведении курсора называется "указатель мыши" вместо "щелчок".

<script type="text/javascript">
    function a(){
        this.classList.toggle('first');
        this.classList.toggle('sec');
    }
    document.querySelector('#container').addEventListener('mouseenter', a )
    document.querySelector('#container').addEventListener('mouseleave', a )
</script>

Хотя подход Tom Chung определенно работает, лучше дать mouseenter а также mouseleave их собственный обработчик:

var container = document.querySelector('#container');

container.addEventListener('mouseenter', function(){
        this.classList.remove('first');
        this.classList.add('second');
})
container.addEventListener('mouseleave', function(){
        this.classList.add('first');
        this.classList.remove('second');
})
.first {
    background: green;
}

.second {
    background: orange;
}
<div id="container" class="first">
    TEST
</div>

(см. также эту скрипку)

Другие вопросы по тегам