jQuery UI自定义CSS作用域.dialog()怪癖

jQuery UI自定义CSS作用域.dialog()怪癖,jquery,css,jquery-ui,Jquery,Css,Jquery Ui,我有一个场景,第三方应用程序正在使用jqUI。因此,对于我的定制,我希望使用另一个版本,并提供了一个自定义CSS范围。With.dialog()jqUI将目标移动到绝对定位/覆盖的自定义范围之外。这里有一个解决方法: // custom jQ namespace var d = my.jq('#my-modal').dialog({ modal: true, autoOpen: false}); d.parent('.ui-dialog').wrap('<div class="my-par

我有一个场景,第三方应用程序正在使用jqUI。因此,对于我的定制,我希望使用另一个版本,并提供了一个自定义CSS范围。With.dialog()jqUI将目标移动到绝对定位/覆盖的自定义范围之外。这里有一个解决方法:

// 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');
// 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');
//自定义jQ命名空间
var d=my.jq(“#my modal”).dialog({modal:true,autoOpen:false});
d、 父('.ui对话框').wrap('');
d、 对话框(“打开”);

但是,这现在会破坏覆盖阴影。有人对此有办法吗

起初我以为这不再是一个问题,但事实上是。这里有一个解决方法:

// 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');
// 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');
//自定义jQ命名空间
var d=my.jq(“#my modal”).dialog({
莫代尔:是的,
自动打开:错误,
“打开”:函数(){my.jq('.ui小部件覆盖').wrap('');}
});
d、 父('.ui对话框').wrap('');
d、 对话框(“打开”);

我意识到这个答案来得太晚了,但当我试图通过谷歌搜索找到类似的答案时,这个问题出现了,所以我想我应该包括这个,以防它对类似搜索的任何人都有帮助:

    $('.ui-dialog').wrap('<div class="abc" />');
    $('.ui-widget-overlay').wrap('<div class="abc" />');
$('.ui对话框').wrap('');
$('.ui小部件覆盖').wrap('');

其中,
abc
是您的“CSS包装器”的名称-请参阅我从何处找到答案。有关JQueru UI对话框中使用的CSS包装器的更多信息,请参见以下内容(但请注意,这并不能解决对话框中CSS包装器的问题,您需要上面的注释来帮助:)

对于JQueryUI 1.10.2,我能让模态对话框工作的唯一方法是将对话框和覆盖都包装在“打开”中事件如下:

open: function () {
    $('.ui-widget-overlay').each(function () {
        $(this).next('.ui-dialog').andSelf().wrapAll('<div class="CSSScopeClass" />');
    });
}
open:函数(){
$('.ui小部件覆盖')。每个(函数(){
$(this).next('.ui dialog').andSelf().wrapAll('');
});
}

唯一不适合这种方法的是将“宽度”设置为“自动”。我还必须手动设置对话框宽度。

实际上我错了。覆盖只是非常模糊的平滑主题,我没有注意到。谁想要答案?你呢?发布你的答案并接受它:-)像老板一样!jqueryui 1.10.3-当对话框关闭时,不要忘记从DOM中删除包装器div