打开Jquery Dialog的按钮不起作用

时间:2011-09-10 23:27:50

标签: jquery-ui

我正在玩Jquery UI

我从DIV手动创建一个对话框,我给了这个DIV和ID以及一个调用closeDialog函数的按钮

它正常工作,如本例所示

http://jsbin.com/ubovej

我遇到的问题是,如果我加载包含BUTTON的页面。该按钮不起作用

如:

$("<div id='mydialog1'>").dialog({ 
         autoOpen: false, 
         modal: false,
         width: 740, 
         height: 840,
         title: 'Dialog1 = dynamic',
         open: function(e, ui){   
            $(this).load(myUrl);  
         }                        
});  

1 个答案:

答案 0 :(得分:2)

如果这是按钮,请单击“事件代码”,然后单击

autoOpen: false,

应该是

autoOpen: true,

编辑:如果你不打开它,直到你点击按钮,然后:

当您想要创建对话框时执行此操作。

var $dialog = $("<div id='mydialog1'>").dialog({ 
     autoOpen: false, 
     modal: false,
     width: 740, 
     height: 840,
     title: 'Dialog1 = dynamic',
     open: function(e, ui){   
        $(this).load(myUrl);  
     }                        
 });

并在单击按钮后(仅在创建对话框后)执行此操作

$("button_selector").click(function () {
    $dialog.dialog("open");
});

编辑:尝试更改

function closeDialog1(){                                                                                                                
   alert('closing Dialog1');                                                                                                            
   window.parent.$('#mydialog1').dialog('close');                                                                                                     
   return false;                                                                                                                        
}

function closeDialog1(){                                                                                                                
   alert('closing Dialog1');                                                                                                            
   $('#mydialog1').dialog('close');                                                                                                     
   return false;                                                                                                                        
}   

或者更好的方法可能是

$("<div id='mydialog1'>").dialog({ 
         autoOpen: false, 
         modal: false,
         width: 740, 
         height: 840,
         title: 'Dialog1 = dynamic',
         open: function(e, ui){   
            $(this).load('dialogtest1a.html');  
         },
         buttons: {
             "Close" : function () {
                  $(this).dialog("close");
             }     
         }                   
});              

关闭对话框的按钮是否必须在您正在加载的页面中?