У меня так много div внутри главного div, и трудно выбрать именно этот div. Предположим:
<div id="main">
<div>
<div></div>
<div>
<div>
<div>
<div class="myclass">
</div>
.....
</div>
Таким образом, с моей разметкой я мог выбрать класс только с помощью: .myclass
Во-первых, я должен удалить класс myclass
следующим образом: $('.myclass').removeClass('myclass');
Затем я должен добавить добавить тот же класс
Поэтому я пробовал вот так:
$('.thisclass').addClass('myclass').removeClass('thisclass');
$('.myclass').addClass('thisclass').removeClass('myclass');
Но внутри функции включения/выключения
Вы можете видеть в этой скрипке, которая не делает то, что я хочу.
Поэтому мой ключевой вопрос заключается в том, как я могу отбросить предыдущий класс после функции щелчка. Мне нужно удалить предыдущий класс и после щелчка.
точно так же, как mouseenter и mouseleave, но мне крайне необходимо после (щелчок)
Вы имеете в виду что-то вроде этого:
$('#clickthis').on('click', function(){
$('.thisclass').addClass('myclass').removeClass('thisclass');
//call this function later, after the 'click' event has been handled :
setTimeout(function(){
$('.myclass').addClass('thisclass').removeClass('myclass');
}, 0);
});
Вы не должны использовать setTimeout
, вы должны использовать complete
обратный вызов функции .animate()
:
$(...).animate( ..., function(){
//this function will be called once the animation is finished
$('.myclass').addClass('thisclass').removeClass('myclass');
// add any action you want to take on animation end
})
Все функции эффекта jQuery (например: fadeIn, slideToggle и т.д.) Принимают complete
обратный вызов.
Может быть, это поможет вам
$('#clickthis').on('click', function(){
$('.thisclass, .myclass').toggleClass('myclass thisclass');
});
проверьте здесь