4

これがダイアログ用の私のjqueryです

</script>
<script type="text/javascript">
    $.ajaxSetup({ cache: false });
    $(document).ready(function () {
        $(".openDialog").live("click", function (e) {
            e.preventDefault();
            $("<div></div>")
            .addClass("dialog")
            .attr("id", $(this)
                .attr("data-dialog-id"))
            .appendTo("body")
            .dialog({
                title: $(this).attr("data-dialog-title"),
                minWidth: 200,
                minHeight: 100,
                resizable: false,
                close: function () { $(this).remove() },
                modal: true
//                        buttons:{ 
//                            close:function(e){
//                               e.preventdefault();
//                               $(this).closest(".dialog").dialog("close"); 
//                            }}
            })
            .load(this.href);
        });
        $(".close").live("click", function (e) {
            e.preventDefault();                  
            $(this).closest(".dialog").dialog("close");
        });
        $(".refresh").live("click", function (e) {
            e.preventDefault();
            location.reload();
        });
    });          
</script>

ここに私の削除ビューがあります

@using (Html.BeginForm()) {
    <div>
    <p>Are you sure you want to delete?</p>
       @Html.HiddenFor(model=>model.UId)
   <table border=0>
    <tr>
   <td>Name:</td>
    <td>@Html.DisplayFor(model =>model.FName)
    @Html.DisplayFor(model => model.LName)</td>
    </tr>
    <tr>
    <td>PAddress:</td>
    <td>@Html.DisplayFor(model => model.PAddress)</td>                                        

    </tr>
    </table>
     <input type="submit" value="Yes"/>
    <button  class="close">No</button>


 </div>
}

問題は、ボタンから close クラスを呼び出すとダイアログが閉じないことですが、 preventDefault を削除するとダイアログが閉じます。ダイアログボックスが閉じない理由を教えてください。

4

6 に答える 6

2
$(".close").live("click", function (e) { 
    e.preventDefault();                   
    $('#yourdivId').closest(".dialog").dialog("close"); 
}); 

これを試して...

于 2012-08-16T15:25:03.977 に答える
1

このように削除ビューを変更できます。

<div>
@using (Html.BeginForm()) {
   <p>Are you sure you want to delete?</p>
       @Html.HiddenFor(model=>model.UId)
   <table border=0>
    <tr>
   <td>Name:</td>
    <td>@Html.DisplayFor(model =>model.FName)
    @Html.DisplayFor(model => model.LName)</td>
    </tr>
    <tr>
    <td>PAddress:</td>
    <td>@Html.DisplayFor(model => model.PAddress)</td>                                        

    </tr>
    </table>
     <input type="submit" value="Yes"/>
}
<button  class="close">No</button>
</div>
于 2012-07-31T05:22:12.227 に答える
1
 $(".ui-dialog").hide();
    $(".ui-widget-overlay").hide();
于 2012-10-19T12:38:17.677 に答える
1

これを試してもらえますか

$(".close").live("click", function (e) {
                e.preventDefault();                  
                $(this).closest(".dialog").dialog("close");
            });

このコードを入れて

$(document).ready(function () {

これはあなたのために働くかもしれません...

于 2012-07-26T05:36:05.277 に答える
1

ここでは、 preventDefault() 関数を使用する必要はありません。preventDefault() は、イベントの望ましくないデフォルト アクションを防ぐために使用されます。

たとえば、リンクをクリックすると、別のページにリダイレクトされます。そのリンクで何か他のことをしたい場合は、デフォルトを防ぎ、アクションを記述する必要があります。

このボタンにはデフォルト アクション (「type」属性で定義) がないため、 preventDefault() を使用する必要はありません。

于 2012-07-26T05:43:52.757 に答える
1

まず、$.ajaxSetup({ cache: false });ドキュメント準備機能の中に入れます。

于 2012-07-26T05:46:06.433 に答える