1

だから、テーブルから行を削除するときにポップアップを表示したいので、これが私のアクションリンクです:

  <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>

@Html.ActionLink("Delete", "Delete", new { id=item.cin  },new { @class = "delete-logo"  ,@pkNo=item.cin})
 <div id="confirmDialog" title="Warning"></div>

私のスクリプト:

<script type="text/javascript">

$(document).ready(function () {
    buttonizeALL();
    setLinks();
});

function buttonizeALL() 
{        
    $(".delete-logo").button();
}

function setLinks() 
{
    //delete person
    $(document).ready(function () {
        $(".delete-logo").live("click", function (e) {
            e.preventDefault();

            var pkNo = $(this).attr("pkNo");


            $("#confirmDialog").dialog({
                resizable: false,
                height: 200,
                width: 300,
                modal: true,
                buttons: {
                    "Yes": function () {
                        $(this).dialog("close");
                        var rowNo = '#row-' + pkNo;
                        var url = '/Subscribers/Delete/' + pkNo;
                        $.ajax({
                            type: "Delete",
                            url: url,
                            data: {},
                            cache: false,
                            dataType: "json",
                            success: function () {

                                $(rowNo).animate({ opacity: 0.0 }, 400, function () {
                                    $(rowNo).remove();
                                });

                            },

                            error: function (jqXHR, exception) {
                                alert('Uncaught Error.\n' + jqXHR.responseText);
                            }

                        }); //end ajax call

                    }, // end of yes button
                    "No": function () {
                        $(this).dialog("close");
                    }
                } //end buttons
            }); //end modal 
        });      //end delete

    });
} //end setLinks

私の問題は、ポップアップが機能しないことです。ポップアップなしでスクリプトを使用すると機能します。何かアイデアがあれば、よろしくお願いします。

4

2 に答える 2

1

jsFiddleで少し整理した例を次に示します。つまり、setLinks() コードを document.ready() 関数に移動しました。

$(document).ready(function () {
    buttonizeALL();
    setLinks(); // removed this
});

また、ActionLink をレンダリングするアンカー タグに置き換えました。これは Jquery 1.8.3 と jQuery UI 1.9.2 を使用しています。ポップアップシームが正常に機能します。

于 2013-04-28T13:26:22.057 に答える
1

まず、「ライブ」コマンドはもう使用しないでください。これは、「on」コマンドの代わりに廃止されました。また、setLinks 関数内で $(document).ready を使用する必要はありません。スタンドアロン関数 (自己実行ではない) であるため、doc.ready 関数で呼び出したときに呼び出されるまで、メモリにのみ配置されます。

于 2013-04-28T13:15:27.400 に答える