是否可以仅对 toggleClass 的 remove class 部分添加延迟?
Is it possible to add a delay to the remove class part of toggleClass only?
是否可以仅对 toggleClass 的删除 class 部分添加延迟?
在 fiddle 中,我希望红色 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(){
if ($(this).hasClass('green')) {
// add your delay here
}
else {
$(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');
}
});
是否可以仅对 toggleClass 的删除 class 部分添加延迟?
在 fiddle 中,我希望红色 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(){
if ($(this).hasClass('green')) {
// add your delay here
}
else {
$(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');
}
});