2014-04-14 120 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