我想更改div的颜色,并在一秒钟后将其改回原来的颜色。但我想连续做2-3次,以引起用户的注意。
下面是jquery代码,它将颜色更改为红色,并仅更改回原始颜色一次。
$('.b').on('click', function() {
var $el = $(".a"),
x = 500,
originalColor = $el.css("background");
$el.css("background", "red");
setTimeout(function(){
$el.css("background", originalColor);
}, x);
});
怎么才能把颜色改回原来的颜色三次呢?
发布于 2013-03-28 20:00:00
使用递归setTimeout
$('.b').on('click', function () {
var $el = $(".a"),
x = 500,
originalColor = $el.css("background"),
i = 3; //counter
(function loop() { //recurisve IIFE
$el.css("background", "red");
setTimeout(function () {
$el.css("background", originalColor);
if (--i) setTimeout(loop, x); //restart loop
}, x);
}());
});
发布于 2013-03-28 20:00:44
$('.b').on('click', function() {
var i = 0,
orgCl = $('.a').css("background"),
timer = setInterval(function() {
$('.a').css('background', 'red').delay(500).show(1, function() {
$('.a').css('background', orgCl).delay(500).show(1, function() {
if (i++ > 2) clearInterval(timer);
});
});
},1000);
});
https://stackoverflow.com/questions/15681091
复制相似问题