0

私は MVC 3 アプリケーションを開発しており、かみそりの構文を使用しています。

このアプリケーションでは、コメント機能を提供しています。

すべての Div にコメント リンクを追加しました。. ユーザーがそのコメント リンクをクリックすると、コメントを追加するためのコントロールのグループを含む部分ビューが読み込まれます。

今私の問題は、新鮮なコメントの削除に関するものです。

既に保存されているコメントを削除するコードがあります..完全に機能しています...

今問題は、ユーザーが新しいコメントを入力して削除しようとすると、削除されないことです...

青い四角を参照してください。

この画像でわかる...

ここに画像の説明を入力

私のコードは...

<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>

@model  IEnumerable<CRMEntities.Comment>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>



//Button which Saves currently added comment in DB as well display on screen...
<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#AddCommentButton').click(function () 

        {     

       // alert("clicked");
            $.ajax({

                type: 'post',
                url: '/Comment/SaveComments',
                dataType: 'json',
                data:
                { 

                 'comments' : $('#Comment').val(), 
                 'EType' : @Html.Raw(Json.Encode(ViewBag.EType)), 
                  'EId' : @Html.Raw(Json.Encode(ViewBag.EId))

                },
                success: function (data) {

                    $("p.p12").append('<div style="background-color:#FAFAFA;">Recently Added... <br /><a href="@Url.Action("Details", "Employee", new { id = "__id__" })'.replace('__id__', data.OwnerID) + '">' + data.OwnerName + '</a>'+ data.cmtDateTime +'<button type="button" id=' + data.Id  + ' class="deleteComment">Delete</button></span><br />' + data.msg + '</div>')


                }

            });
        });
    });
</script>





<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".ShowComments").click(function () {
            $(".ParentBlock").slideToggle("slow");
     });
    });
</script>


</head>
<body>

@{



     <div class="ParentBlock">


    @foreach (var item in Model)
    {
        <div class="OwnerClass" id="OwnerName">


         <span class="EmpName"> @Html.ActionLink(item.Owner.FullName, "Details", "EMployee", new { id = item.OwnerId }, new { @style = "color:#1A6690;" })</span>

           @Html.DisplayFor(ModelItem => item.CommentDateTime)

          <span class="EmpName"><button type="button" id = "@item.Id" class="deleteComment">Delete</button></span>



        <p class="CommentP">
           @Html.DisplayFor(ModelItem => item.CommentText)
        </p>


        </div>


    }


     <p class="p12">

      </p>



</div>

      <p id="ClassPara" class="ShowComments" onclick="chkToggle()">Show All Comments</p>

}



   @Html.TextArea("Comment", "", 5, 80, "asdsd")


    <input type="button" value="Add Comment" id="AddCommentButton"/>                         
    <input type="button" value="Clear" onclick="clearText()"/>                    

    <br />







</body>
</html>





<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
//   Working code - Deletes the comment from DB and removes hide the current Div
////////////////////////////////////////////////////////

    $(document).ready(function () {
        $(".deleteComment").click(function ()
         {
            alert("asd");

            var Id = $(this).attr("id");
           var self = this;

            var url1="@Html.Raw(Url.Action("DeleteComment", "Comment", new { id = "idValue" }))";
            url1=url1.replace("idValue",Id );
            alert(url1);

            $.ajax(
            {

                type: 'post',
                url: '/Comment/DeleteComment',
                dataType: 'json',
                data:
                { 

                 'EId' : Id

                },
                success: function (data) 
                {
                alert ("Hello");



                    $(self).closest("div").hide("slow");
                }

            });

        });
    });



</script>
4

1 に答える 1

0

新しいdivを追加するときの成功メソッドでは、CSSがdisplay:none

例えば:

$("p.p12").append('<div style="background-color:#FAFAFA;">Recently Added... <br /><a href="@Url.Action("Details", "Employee", new { id = "__id__" })'.replace('__id__', data.OwnerID) + '">' + data.OwnerName + '</a>'+ data.cmtDateTime +'<button type="button" id=' + data.Id  + ' class="deleteComment hidden">Delete</button></span><br />' + data.msg + '</div>')

CSS:

.hidden { display: none;}

表示する準備ができたら、ボタンからクラスを削除するだけです。

于 2012-09-22T13:21:41.167 に答える