我有这段代码:
$('#foo').click(function () {
var xyz = $('#foo2').val().length;
if(xyz < 1) {
$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000);
} else ......
我对这一行有疑问:
$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000);
如果xyz为0,它会显示一条错误消息,但问题是它只能运行一次,我需要它多次工作,所以如果点击第2次,第3次,第4次等会弹回,有没有办法清除/ reset .html()这样可以再次使用吗?
答案 0 :(得分:3)
您不需要清除/重置它。所有你需要做的就是展示它。
$('#msg').html('<div id="error">error</div>').show().delay(3000).fadeOut(1000);
.html()
在使用.empty()
innerHTML
答案 1 :(得分:1)
有没有办法清除/重置.html()
是的,有。使用.empty()
答案 2 :(得分:0)
$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000, function(){
$(this).empty()
})
答案 3 :(得分:0)
问题不是.html()
它是.fadeOut()
你淡出div,现在它已经被隐藏了。 (display:none;
)。你需要再次展示它才能淡出它。
您可以通过调用.empty()
清除其内容,然后在隐藏邮件后再次显示该内容。或者你可以在调用你的行来延迟/淡出之前显示它。
$('#foo').html('<div id="error">error</div>').show().delay(1000).fadeOut(1000);
这是demo
答案 4 :(得分:0)
$('#msg').empty().html('<div id="error">error</div>').show().fadeOut(1000);