Я могу загрузить и снова открыть диалоги 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/
Что я могу сделать, чтобы заставить IE вести себя, если не считать Datepicker в качестве первого элемента?