2011-09-01 104 views
2

我有一个元素,我正在切换的样式(像一个开/关按钮)。如果它现在处于“开”状态,请将样式更改为“关”,反之亦然。但是,在一些情况下,我想要执行上述操作,但是然后恢复到它的原始状态(取消切换),但是我希望通过对样式进行非常简短的更改来反映给用户(所以1/2第二,它看起来像它已经改变了风格,但随后将恢复到原来状态jQuery切换元素样式,但暂时中止

我目前我的切换按钮的状态与下面的代码:

myButton.toggleClass('button-off').toggleClass('button-on'); 

我已经尝试链接上面和上面一行的“翻页”之间的delay(500),但这不起作用。

+0

你能解释更多的还是把jsfiddle.net代码,看看你是什么意思?! –

+0

jQuery的延迟应该用于链接动画时,而不是替换setTimout(如答案中),请参阅:http://api.jquery.com/delay/ – m90

回答

5

我会做这样的事情:

$('#myButton').click(function() { 
    var that = $(this); 
    that.toggleClass('button-off button-on'); 
    setTimeout(function() { that.toggleClass('button-off button-on'); }, 500); 
}); 

你需要切换这两个类在它们之间切换。

JSBin Example

+0

感谢您的示例。 – marcusstarnes

3

这应该工作:

myButton.toggleClass('button-off'); 
setTimeout(function() { 
    myButton.toggleClass('button-on'); 
}, 500);