0

我有这个代码:

    $('#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,它会显示一条错误消息,但问题是它只能工作一次,我需要它多次工作,所以如果点击第二次、第三次、第四次等它会弹出,有没有办法清除/重置。 html() 所以它可以再次使用?

4

5 回答 5

3

您无需清除/重置它。您需要做的就是展示它。

$('#msg').html('<div id="error">error</div>').show().delay(3000).fadeOut(1000);

.html()在使用.empty()之前在内部使用innerHTML

于 2012-08-01T21:06:12.163 回答
1

有没有办法清除/重置 .html()

就在这里。使用.empty()

于 2012-08-01T21:04:57.157 回答
0
$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000, function(){
    $(this).empty()
})
于 2012-08-01T21:07:11.763 回答
0

问题不在于.html().fadeOut()将 div 淡出,现在它被隐藏了。( display:none;)。您需要再次显示它以使其淡出。

您可以通过调用清除它的内容.empty(),然后在隐藏消息后再次显示它。或者您可以在呼叫您的线路延迟/淡入淡出之前显示它。

$('#foo').html('<div id="error">error</div>').show().delay(1000).fadeOut(1000);

这是一个演示

于 2012-08-01T21:07:17.150 回答
0
$('#msg').empty().html('<div id="error">error</div>').show().fadeOut(1000);
于 2012-08-01T21:08:35.283 回答