2012-03-30 66 views
0

我正在使用jQuery UI模式對話框。我希望將對話框固定在屏幕中間位置,並在瀏覽器中調整位置以自動更新。事實證明,這是默認情況下不可用。jQuery對話框,如何綁定窗口大小調整事件,但僅當對話框存在時

所以我所做的是:

dialog = $('<div id="dialog-content" class="ui-dialog-container"></div>').html('<div class="loading">Loading...</div>').dialog({ 
    autoOpen: true, 
    position: ['center', 130], 
    open: function() { 

     // Fixed Positioning 
     $('.ui-dialog').css({position:"fixed"}); 

     // Reposition on Window Resize 
     $(window).resize(function() { 
      console.log('resizing); 
      $('.ui-dialog').dialog("option", "position", "center"); 
     }); 


    } 
}); 

注意的:

  console.log('resizing); 

這裏的問題是,雖然這項工作,S當對話框關閉調整大小事件仍然是射擊。我怎樣才能使這個與對話框相關聯的綁定,以便當對話框銷燬時綁定也被破壞?

感謝

+0

你的用戶認真調整窗口的大小,往往? :o – ThiefMaster 2012-03-30 22:07:56

回答

1

你有當對話框關閉解除綁定resize事件:

.dialog({ 
    ..., 
    open: function() { 
     ... 
     $(window).bind('resize.dlg', function() { 
      ... 
     }); 
    } 
    close: function() { 
     $(window).unbind('resize.dlg'); 
    } 
}); 
+0

我需要其他應用程序相關事件的resize事件。只是不爲這個對話框? – AnApprentice 2012-03-30 22:08:45

+1

查看我的更新回答 – ThiefMaster 2012-03-30 22:09:14

+1

我確實需要其他調整大小事件 – AnApprentice 2012-03-30 22:10:03

1

添加到您的對話框選項:

close:function(){ 
    $(window).unbind('resize'); 
}