我的jQuery问题......项目正在消失

时间:2009-11-10 03:05:56

标签: jquery asp.net-mvc asp.net-ajax

我有以下代码:

<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 个答案:

答案 0 :(得分:1)

它可能与您淡出所有具有id评论的元素有关吗?你能尝试删除淡出并且只有fadein吗?

如果失败了,你可以给新评论一个唯一的ID,并且只在那个中消失。

另外,您对评论的部分看法是什么?你能提供那些代码吗?

修改

只是多想一想。我实现了和你一样的东西,我做的方式是做一个通过RenderPartial返回html的jQuery回发。然后,我只是[附加] html到包含注释的div的末尾并将其淡化。

这适合你的情况吗?