jQuery对话框没有关闭

时间:2012-07-26 05:30:00

标签: javascript jquery-ui jquery

这是我的jquery for dialog

</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时,对话框关闭了。任何帮助,请为什么对话框没有关闭。

6 个答案:

答案 0 :(得分:2)

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

试试这个......

答案 1 :(得分:1)

你能试试吗

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

将此代码放入

$(document).ready(function () {

这可能对你有用......

答案 2 :(得分:1)

这里你不需要用户preventDefault()函数。 preventDefault()用于防止事件的不必要的默认操作。

例如,当您单击某个链接时,它会将您重定向到另一个页面。如果您希望该链接执行其他操作,则需要阻止默认并编写操作。

由于此按钮没有默认操作(使用“type”属性定义),因此您无需使用preventDefault()。

答案 3 :(得分:1)

首先,您将$.ajaxSetup({ cache: false });放入文档就绪函数中。

答案 4 :(得分: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>

答案 5 :(得分:1)

 $(".ui-dialog").hide();
    $(".ui-widget-overlay").hide();