2012-08-01 42 views
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()所以它可以再次使用?

回答

3

您不需要清除/重置它。所有你需要做的就是展示它。

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

.html()使用.empty()在內部它使用innerHTML

+0

謝謝Kevin B,當我可以的時候會標記爲答案。 – 2012-08-01 21:09:22

1

有沒有辦法來清除/復位的.html()

是的,有。使用.empty()

+0

我傾向於懷疑它要解決雖然安娜的問題。 – KRyan 2012-08-01 21:05:27

0
$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000, function(){ 
    $(this).empty() 
}) 
0

面前的問題是不是.html().fadeOut()你消失在div出來,現在是隱藏的。 (display:none;)。你需要再次顯示它淡出它。

您可以通過調用.empty()來清除它的內容,然後在隱藏該消息後再次顯示它。或者您可以在呼叫線路延遲/淡入之前顯示它。

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

這裏有一個demo

0
$('#msg').empty().html('<div id="error">error</div>').show().fadeOut(1000); 
相關問題