2009-11-10 32 views
0

問題,我有以下代碼:我的jQuery ...項目正在消失

<div id="comments"> 
    <h2> 
     Comments</h2> 
    <div id="comment"> 
    </div> 
    <% foreach (var comment in this.Model.Topic.TopicComments.OrderBy(tc => tc.CreatedDate).Reverse()) 
     { %> 
    <% this.Html.RenderPartial("TopicComment", comment); %> 
    <% } %> 
    <fieldset> 
     <% using (Ajax.BeginForm("AddComment", "Topic", new { id = this.Model.Topic.TopicId }, 
       new AjaxOptions { UpdateTargetId = "comment", OnSuccess = "animateTopicComment" })) 
      { %> 
     <%= Html.TextArea("Body", string.Empty, new { @class = "wmd-ignore" })%> 
     <input type="submit" value="Add Comment" /> 
     <% } %> 
    </fieldset> 
</div> 

<script type="text/javascript"> 

    function animateTopicComment() { 
     $("#comment").fadeOut(0, function() { 
      $('#comment').fadeIn("slow"); 
     }); 
     $("#Body").val(""); 
    } 

</script> 

我所試圖做的是,每當用戶添加了一個評論,我想評論淡入此差不多。作品...保存爲以下問題:

如果我不斷添加評論,無論在評論DIV被覆蓋。如果我不使用任何jQuery動畫,則新評論將正確顯示。

回答

1

它可能與你有什麼關係淡出所有具有評論ID的元素?你可以嘗試刪除淡出,只有淡出?

做不到這一點,你可以給新的評論一個唯一的ID,只淡出英寸

而且,什麼是在爲你的評論部分觀點?你能提供那個代碼嗎?

編輯

能有更多的創想的有點。我已經實現了和你一樣的事情,而且我的做法是做一個jQuery postback,它通過RenderPartial返回html。然後,我簡單地[附加]該html到包含評論的div的末尾,並將其淡入。

在您的情況下,這是否合適?

+0

這將工作......愚蠢的問題......你會如何追加它? – mattruma 2009-11-10 13:00:04

+0

這不是一個愚蠢的問題。你會使用append關鍵字。所以我們假設你有一個div,它有一個類名「MyContent」。所有你需要做的就是從你的jQuery post中返回的html並說出類似$('。MyContent')。append(html);因爲它的doco在這裏http://docs.jquery.com/Manipulation/append – griegs 2009-11-10 20:48:24

+0

因此,而不是在我的Ajax調用中使用UpdateTargetId,我會做所有這一切在一個單獨的功能? – mattruma 2009-11-11 14:29:51