2011-06-20 17 views
0

目前我們使用blockUI獲取模態iframe,使用jquery UI dialog獲取模態「是/否」 - 對話框。
爲什麼我們與這兩個組件工作的原因是如何解決我的自制模式腳本 - 或者:有沒有其他選擇?

  • 它們都依賴於jQuery UI的主題 - 所以有這2種模式的元素之間沒有休息。
  • 它真的很容易得到「是/否」與jQuery UI的對話框-dialogs,並附加活動,這些按鈕
  • blockUI真的是越來越輕巧

我們現在正在尋找替代方案,如該代碼,這是用於獲取模式的I幀是有點馬車:

var popups = {}; 

function showPopup(settings) { 
    var target = settings.target; 
    var $popup = popups[target]; 
    if ($popup) { 
     $popup.attr('src', 'blankPage.html'); 
    } 
    else { 
     $popup = $('<iframe/>'); 
     $popup.appendTo('form'); 
     $popup.css('display', 'none'); 
     $popup.attr('frameborder', 0); 
     $popup.dialog({ 
      'title': settings.title, 
      'autoOpen': false, 
      'modal': true, 
      'width': settings.width, 
      'height': settings.height, 
      'draggable': false, 
      'resizable': false, 
      'open': function() { 
       var $widget = $popup.dialog('widget'); 
       $widget.css('position', 'fixed'); 
       $widget.css('top', '50%'); 
       $widget.css('margin-top', $widget.height()/2 * -1); 
       $widget.css('left', '50%'); 
       $widget.css('margin-left', $widget.width()/2 * -1); 
       $popup.css('width', settings.width); 
       $popup.css('padding', '0px'); 
       $popup.attr('src', settings.target); 
      } 
     }); 
     popups[target] = $popup; 
    } 
    $popup.dialog('open'); 
} 

它工作的很好,但做了點擊時打開一個對話框,然後關閉,並重新打開它,它顯示前一頁一些ms - 如果模式內容有一些fl,這可能非常棘手流自己。

是否有任何修復它的機會,或者是否有適合我們需求的替代腳本?

回答

0

的解決方案很簡單:

var popups = {}; 

function showPopup(settings) { 
    var target = settings.target; 
    var $popup = popups[target]; 
    if (!$popup) { 
     $popup = $('<iframe/>'); 
     $popup.appendTo('form'); 
     $popup.css('display', 'none'); 
     $popup.attr('frameborder', 0); 
     $popup.dialog({ 
      'title': settings.title, 
      'autoOpen': false, 
      'modal': true, 
      'width': settings.width, 
      'height': settings.height, 
      'draggable': false, 
      'resizable': false, 
      'open': function() { 
       var $widget = $popup.dialog('widget'); 
       $widget.css('position', 'fixed'); 
       $widget.css('top', '50%'); 
       $widget.css('margin-top', $widget.height()/2 * -1); 
       $widget.css('left', '50%'); 
       $widget.css('margin-left', $widget.width()/2 * -1); 
       $popup.css('width', settings.width); 
       $popup.css('padding', '0px'); 
       $popup.attr('src', settings.target); 
      }, 
      'close': function() { 
       $popup.attr('src', 'blankPage.html'); 
      } 
     }); 
     popups[target] = $popup; 
    } 
    $popup.dialog('open'); 
} 

還是...我在任何替代頗感興趣!

相關問題