2014-04-14 56 views
0

我已经阅读了很多关于如何关闭jquery对话框的内容,但我无法获得任何解决方案发布的工作。单击外部关闭对话框

这是我的代码。

function openPopUp(element){ 
var a = element; 
var dialog = $("#methods").dialog({ 
       autoOpen: false, 
       modal: true, 
       draggable: false, 
       resizable: false, 
       open: function() { 
         $(".ui-dialog-titlebar-close").hide(); 
      //THIS IS THE SOLUTION THAT I CAN'T GET TO WORK 
      $('.ui-widget-overlay').bind('click', function() { 
              $('#methods').dialog('close'); 
        }) 
      } 
}); 

//open dialog 
    dialog.dialog('open'); 

//set dialog position 
    $("#methods").dialog( 
       "option", 
       "position", 
       { 
        my: "left bottom", 
        at: "left bottom", 
        of: a 
       } 
      ); 
      } 

,我打电话从一个onclick事件这个功能从我的HTML代码

onclick="openPopUp(this);" 

我认为我missunderstanding一些关于对话框非常重要的,任何人可以帮助我吗?

一个主要问题可能是我的.ui-widget-overlay div在我的页面内没有维度。

+0

退房:http://benalman.com/projects/jquery-outside-events-plugin/ – urbz

+0

除非你使用jQuery的一个古老的版本,你应该使用'。对()',而不是绑定。 – SeinopSys

回答

0
function openPopUp(element){ 
var a = element; 
$("#methods").dialog({ 
       autoOpen: false, 
       modal: true, 
       draggable: false, 
       resizable: false, 
       open: function(event, ui){ 
       $(".ui-dialog-titlebar-close").hide(); 
       //THIS IS THE SOLUTION THAT I CAN'T GET TO WORK 
       $(document).on('click','.ui-widget-overlay', function() { 
          $('#methods').dialog('close'); 
        }); 
       } 
      }); 

     } 
+0

通过这种方式,对话框不会打开,我必须添加“dialog.dialog('open')”。但它仍然不起作用。 – Tiz

+0

再次尝试更新 –

+0

不,我无法获得此代码的工作。它甚至不会像这样打开对话框。 – Tiz