2011-11-30 76 views
0

我有一個場景,第三方應用程序正在使用jqUI。所以對於我的定製,我希望使用另一個版本並提供了一個自定義的CSS範圍。使用.dialog()jqUI將目標移動到我的自定義範圍之外以進行絕對定位/疊加。這是一個解決方法:jQuery UI自定義CSS範圍.dialog()怪癖

// custom jQ namespace 
var d = my.jq('#my-modal').dialog({ modal: true, autoOpen: false}); 
d.parent('.ui-dialog').wrap('<div class="my-part"></div>'); 
d.dialog('open'); 

但是,這現在打破了疊加陰影。有沒有人有這方面的修復?

+0

其實我錯了。覆蓋圖與我沒有注意到的平滑主題非常微弱。誰想要答案? – ryan

+0

你呢?發佈您的答案並接受它:-) –

回答

1

起初我認爲這不再是一個問題,但它實際上是。這裏有一個解決方法:

// custom jQ namespace 
var d = my.jq('#my-modal').dialog({ 
    modal: true, 
    autoOpen: false, 
    'open': function() { my.jq('.ui-widget-overlay').wrap('<div class="my-part"></div>'); } 
}); 
d.parent('.ui-dialog').wrap('<div class="my-part"></div>'); 
d.dialog('open'); 
0

我知道這個答案是遲,但這個問題打開了我,當我試着在谷歌搜索找到了類似的回答所以以爲我會包括此情況下,它可以幫助任何人在類似的搜索:

$('.ui-dialog').wrap('<div class="abc" />'); 
    $('.ui-widget-overlay').wrap('<div class="abc" />'); 

哪裏abc是你的「CSS包裝」的名字 - 看到this在那裏我找到了答案,從Evgeni Nabokov。有關使用JQueru UI對話框的CSS包裝器的更多信息,請參閱以下內容(但請注意,它並未解決對話框中的CSS包裝器的問題 - 您需要上述註釋以幫助此處:Filament blog

1

與jQuery UI 1.10.2,我能得到的模態對話框工作CCS範圍是在「開放」的事件來包裝這兩個對話框,並覆蓋像下面的唯一途徑:

open: function() { 
    $('.ui-widget-overlay').each(function() { 
     $(this).next('.ui-dialog').andSelf().wrapAll('<div class="CSSScopeClass" />'); 
    }); 
} 

,做的唯一的事情似乎沒有用這種方法是「寬度」設置爲「自動」。我也必須手動設置對話框寬度。

+0

像老闆一樣! jqueryui 1.10.3 - 當關閉對話框時,不要忘記從DOM中去除包裝器div – Kevin