2011-04-23 69 views
1

我如何使jquery對話框只覆蓋用戶控件而不是整個頁面..任何想法?jquery對話框和用戶控件

想象我有此腳本對用戶控件(.ascx)

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#popup").dialog({ closeOnEscape: false, draggable: false, modal: true, 
           resizable: false, closeText: 'hide' }); 

    $.ajax({ 
      type: "POST", 
      dataType: "xml", 
      contentType: "application/json; charset=utf-8", 
      url: "Service2.svc/DoWork", 
      data: "{}", 
      processdata: true, //True or False 
      success: function (response, textStatus, jqXHR) { 
       $("#popup").dialog('close'); 

      }, 
      error: function() { 
       $("#popup").dialog('close'); 
       alert("error"); 
      } 
     }); 
}); 

</script> 

<div id="popup" style="display:none"> 
Loading contents... 
</div> 

現在,當用戶控件加載模態(覆蓋)問題是覆蓋整個頁面。我希望它僅覆蓋用戶控件,因此用戶仍然可以與頁面上的其他控件進行交互。

+0

我有一個用戶控制和用戶控制的範圍內我有一個實現jQuery UI的對話框中的JavaScript。現在,當模式設置爲true並覆蓋整個頁面時。我如何使它僅覆蓋用戶控件? – user384080 2011-04-23 06:37:49

+0

@ user384080 - 你可以發佈你的代碼嗎?沒有它,很難說出你正在使用的是什麼以及你如何使用它。 – Oded 2011-04-23 06:40:38

+0

我如何在這裏發佈我的代碼?它沒有上載文件的功能。 – user384080 2011-04-23 06:48:52

回答

3

如果你只是要阻止的網頁,唐的某一部分不使用模態,手動執行。將要禁用的頁面部分封裝在div中,並在對話框的打開和關閉事件中添加/刪除疊加層。

$("#popup").dialog({ 
    closeOnEscape: false, 
    draggable: false, 
    modal: false, 
    resizable: false, 
    closeText: 'hide', 
    open: function(){ 
     $('.coverme').append('<div class="ui-widget-overlay"></div>'); 
    }, 
    close: function(){ 
     $('.coverme').find('.ui-widget-overlay').remove(); 
    }   
}); 

在上面的代碼,'.coverme'是選擇要暗淡和塊的頁面的部分的選擇器。確保將容器的css屬性設置爲相對或絕對(除靜態以外的任何內容),否則疊加層將填充整個頁面。

看一看http://jsfiddle.net/DBd36/

0

的jQuery UI的dialog讓你specify a position,這樣你就可以在「用戶控制」的位置就不管你想要的,包括:

$(".selector").dialog({ position: [10, 200], height: 300, width: 300 });