美好的一天,
我正在将我的Web应用程序系统jQuery升级到1.12.1版。并且发现overlay
在新的jQuery版本中不起作用。
我正在使用ajax弹出带叠加层的对话框。这是我的ajax代码:
$.ajax({
async: false,
url: locurl,
data: dataPackage,
success: function(result){
createServiceModel();
$("#viewService").dialog({
height: 645,
width: 720,
resizable: false,
modal: true,
autoOpen: true,
bgiframe: true,
overlay: {
opacity: 0.4,
backgroundColor: "black"
}
});
$("#serviceContent").append(result);
},
error: function (xhr, ajaxOptions, thrownError){
if(xhr.status==403) alert("You are not allowed to proceed due to changes in your profile. Please re-log in again.");
else alert("Connection Error. Please try again later. If error persisted, please contact System Administrator.");
}
});
这对我的旧jQuery工作正常。
以下是我从Chrome调试模式中复制的HTML代码:
<div class="ui-dialog-overlay" style="border-width: 0px; margin: 0px; padding: 0px; position: absolute; top: 0px; left: 0px; width: 1343px; height: 628px; opacity: 0.4; background-color: red; z-index: 1001;"></div>
<div class="ui-dialog ui-draggable" tabindex="-1"
style="display:block;position:absolute;width:720px;height:645px;overflow:hidden;z-index:1002;outline:0px;top:5px;left:311.5px;;;">
<!-- other html code here -->
</div>
我发现ui-dialog-overlay
实际上可以从ui.dialog.js
找到。
但是,当我升级到jQuery UI 1.12.1时,我发现jquery-ui.js中不再存在ui-dialog-overlay
,而是ui-dialog-overlays
。
我从http://jqueryui.com/download/
下载了最新的jQuery js文件 ajax代码中的overlay
语法是否发生了变化?
我尝试通过添加&#39;来更改overlay
。在它上面
overlays: {
opacity: 0.4,
backgroundColor: "black"
}
但仍然没有工作。
请告知。
答案 0 :(得分:1)
美好的一天,
我找到了自己的解决方案。
我不应该只升级jQuery。但我还需要升级jQuery UI以及css文件。
对于这种情况,我遇到这个问题是因为我的ui.dialog.css
仍处于旧版本,并且覆盖类名称不匹配,这就是覆盖功能不起作用的原因。
升级我的ui.dialog.css后,问题解决了。