【发布时间】:2012-01-28 00:09:07
【问题描述】:
我能够在我尝试过的所有浏览器中加载和重新打开 jQueryUI 对话框,并使用 Datepicker 作为第一个元素......除了 IE 9。 如果 Datepicker 是对话框打开时第一个获得焦点的元素,则 Datepicker 将自动启动。我能够在 FireFox 和 Chrome 中抑制这种行为。 IE 9 在创建时仍会启动 Datepicker。
我对对话框的打开和关闭功能是:
open: function (event, ui) {
$('#Date').blur(); // kill the focus
if ($('#Date').hasClass('hasDatepicker')) {
$("#Date").datepicker('enable');
}
else {
$("#Date").datepicker();
}
},
close: function (event, ui) {
$("#Date").datepicker('disable');
}
这里是“点击”代码
var dialogs = {};
$('#clicker').click(function (e) {
if (!dialogs['dlg']) {
loadAndShowDialog('dlg');
} else {
dialogs['dlg'].dialog('open');
}
});
var loadAndShowDialog = function (id) {
dialogs[id] = $('#dlg').clone().find('#ChangeMe').attr('id', 'Date').end()
.appendTo(document.body)
.dialog({ // Create the jQuery UI dialog
title: 'Testing',
modal: true,
resizable: true,
draggable: true,
width: 300,
open: see above
close: see above
};
jsfiddle 显示这个 IE9 问题 http://jsfiddle.net/stocksp/DdRLp/8/
除了不将 Datepicker 作为第一个元素之外,我能做些什么来让 IE 正常运行?
【问题讨论】:
标签: jquery-ui jquery-ui-dialog jquery-ui-datepicker