经过广泛搜索这个主题后,我找不到答案,所以希望有人可以帮我解决这个问题.我有一个相对基本的对话框:
$("#dialog-search").dialog({
resizable: false,
height:dimensionData.height,
width: dimensionData.width,
modal: true,
title: dimensionData.title,
position: [x,y],
open: function() {
$("#dialog-search .dateField").blur();
},
close: function(event, ui){
callBack(event,ui);
}
});
Run Code Online (Sandbox Code Playgroud)
我想要做的是用ui(ui-icon-minus)提供的不同图标替换X图标(ui-icon-close),这样点击减号图标就会关闭对话框.我已经看过有关如何隐藏图标或用css中的自定义图像替换它的帖子,但我还没有找到用另一个图标替换图标来执行相同功能的方法.
编辑:我还希望能够通过添加自定义行为/位置在我的对话框中使用ui-icon-close来实现不同的功能,但这可能超出了此问题的范围.如果这是一个相关的解决方案,请随意解决这个问题.
根据我之前的研究,我已经能够弄清楚如何在对话框周围的叠加层上触发实时点击事件以关闭对话框.但是,这会将此对话框功能的进一步发展限制为模态.如果我将对话框设置为非模态,则没有叠加来触发click事件.如何在不使用叠加点击事件的情况下单击外部对话框时,如何设置对话框(现在不是模态)?
这是我的对话框和随后的实时点击事件,它允许我从叠加层关闭对话框:
$("#dialog-search").dialog({
resizable: false,
height:dimensionData.height,
width: dimensionData.width,
modal: false,
title: dimensionData.title,
position: [x,y],
close: function(event, ui){
callBack(event,ui);
}
});
$('.ui-widget-overlay').live('click', function() {
$('#dialog-search').dialog("close");
});
Run Code Online (Sandbox Code Playgroud) 我只在IE中遇到与require.js插件有关的错误.
我在require.js中有以下代码(第1061行):
if (plugin.normalize) {
Run Code Online (Sandbox Code Playgroud)
IE 8正在返回此错误:
消息:'normalize'为null或不是对象
行:1061字符:25
我检查了调试器并且插件对象存在,normalize未定义.在javascript中,这应该评估为"false",并且if-condition失败.但是,出于某种原因,IE会抛出此错误,而不是让我的页面正确加载.有谁知道为什么会这样?
具有讽刺意味的是,如果我将第1061行更改为:
if (plugin.normalize !== undefined && plugin.normalize !== null && plugin.normalize !== false) {
Run Code Online (Sandbox Code Playgroud)
然后IE8成功运行代码...问题是,这应该是等效的代码,我不能改变像require.js这样的第三方软件包,只是为了避免像这样的IE漏洞.