我有以下代码:
<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动画,则新注释会正确显示。
答案 0 :(得分:1)
它可能与您淡出所有具有id评论的元素有关吗?你能尝试删除淡出并且只有fadein吗?
如果失败了,你可以给新评论一个唯一的ID,并且只在那个中消失。
另外,您对评论的部分看法是什么?你能提供那些代码吗?
修改强>
只是多想一想。我实现了和你一样的东西,我做的方式是做一个通过RenderPartial返回html的jQuery回发。然后,我只是[附加] html到包含注释的div的末尾并将其淡化。
这适合你的情况吗?