是否可以仅向toggleClass的remove class部分添加延迟?

在小提琴中,我希望红色div在单击时立即变为绿色。
但是,当再次单击时,它应该延迟重新变回红色。

http://jsfiddle.net/simbasounds/ggk8xxya/1/

的HTML

<div class="container">
   I am a div
</div>


的CSS

.container {
    padding: 10px;
    background: red;
}

.container.green {
    background: green;
}


jQuery的

$(".container").click(function(){
   $(this).toggleClass('green');
});

最佳答案

从绿色转换为红色时的简单延时

$(".container").click(function(){
   var $element = $(this);

   //check if element has green class --> remove green class with a delay
   if ($element.hasClass('green')) {
     var delay = 1000; //ms
     setTimeout(function(){
         $element.removeClass('green');
     },delay );
   }
   // element doesn't have green class --> add it
   else {
     $element.addClass('green');
   }
});


fiddle

关于jquery - 是否可以仅向toggleClass的remove class部分添加延迟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32455634/

10-13 01:32