我这里有一个非常标准的问题。
我有一个错误div,
按下按钮时会显示错误消息, 然后在(500 * n)ms(其中n =字母数)之后淡入div,div淡出。
我的问题发生在用户在div淡出之前再次按下按钮时。
当div仍然可见时,divs内容将使用新的错误消息
进行更新在初始(500 * n)ms后,div淡出,然后立即淡入,并在另一个(500 * n)ms内可见。
我想要的是。
我怎样才能做到这一点?
我目前的代码在
之下function login_error(message){
$('form').effect('shake', { times: 1 }, 50);
$('#error').html(message).fadeIn('fast').delay(500*message.length).fadeOut('fast');
}
答案 0 :(得分:1)
这样的事情?
$(function() {
var counter = 0;
var timeOut;
$('button').click(function() {
showdiv('clicked ' + counter++);
});
function showdiv(str) {
clearTimeout(timeOut);
$('div').fadeOut(function() {
$(this).html(str).fadeIn(function() {
timeOut = setTimeout(function() {
$('div').fadeOut();
}, 100 * str.length);
});
})
}
});
答案 1 :(得分:0)
也许你停止动画并重置div
$('#error').stop().hide().html(message).fadeIn('fast').delay(500*message.length).fadeOut('fast');
答案 2 :(得分:0)
另一个解决方案是,点击按钮后你可以禁用它,并且使用div完成/动画完成后你可以重新启用它。