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>
}

问题是当我从按钮调用关闭类时,对话框不会关闭。但是当我删除 preventDefault 时,对话框关闭。任何帮助请为什么对话框没有关闭。

4

6 回答 6

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

试试这个...

于 2012-08-16T15:25:03.977 回答
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 回答
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 回答