jquery ui对话框不会"关闭"

时间:2012-06-19 13:45:51

标签: jquery user-interface dialog

我有一个jquery对话框,我想制作JIT(Just in Time)这对我来说,是迄今为止最优雅的工作方式,但我已经花了大约2天坚实的这个错误,我不能为我的生活想通了。

我知道它应该有效,因为角落里的X点击效果非常好

因此。你可以a)帮我解决这个问题,或者b)告诉我如何将取消按钮绑定到X的点击事件(我曾经在遇到过这样的问题之前使用过这个技巧,但是这个控件上没有id我可以找到,现在明显的方式(我知道如何找到)使用parents()浏览层次结构。

 $(function() {
     var popUrl = 'pop.php?jscriptpopup=true';
     $("#button").click( function () { 
         JQueryDialog(popUrl); 
         return false;
     });        
 });

var dialog;  //<--added in desperation

function JQueryDialog(url){

    $("#dialog").remove();

    $("body").append("<div id='dialog'></div>"); 

    dialog = $("#dialog").dialog({
        resizable: false,
        draggable: false,
        width: 770,
        height: 470,
        context: that,
        modal: true,
        autoOpen: false,
        buttons: {
            "Cancel" : function (){
                $(dialog).("close");    //<--this will not work
                                    //$(this).dialog("close"); <<-- hopeless
                                    //$("#dialog").dialog("close"); <<-- hopeless
                                    //$("#dialog").remove(); <<-- hopeless
            }
        }
    });     

    $.get(url, function(data) {
        $("#dialog").html(data);
        $("#dialog").dialog('open');        
    });     
}

1 个答案:

答案 0 :(得分:2)

在做完这件事之后,我发布的那一刻我偶然发现它 - 通常是

这有效..不知道为什么

function JQueryDialog(url){

    $("#dialog").remove();

    $("body").append("<div id='dialog'></div>"); 

    that = $("#dialog");

    dialog = $("#dialog").dialog({
        resizable: false,
        draggable: false,
        width: 770,
        height: 470,
        context: that,
        modal: true,
        autoOpen: false,
        buttons: {
            "Cancel" : function (){
                that.dialog("close");
            }
        }
    });     

    $.get(url, function(data) {
        $("#dialog").html(data);
        $("#dialog").dialog('open');        
    });     
}