2008-10-01 2 views
1

Я пытаюсь использовать JQuery UI datepicker (последняя стабильная версия 1.5.2) на веб-сайте IE6. Но у меня возникают обычные проблемы с комбинированными ящиками (выбирает) на IE6, где они плавают над другими элементами управления. Я попытался добавить плагин bgIframe после объявления дампикера без везения.Как использовать JQuery UI datepicker с bgIframe на IE 6

Моя догадка заключается в том, что .ui-datepicker-div, к которому я прикрепляю bgIframe, не существует, пока не будет показан календарь.

Мне интересно, могу ли я поместить команду .bgIframe() непосредственно в файл .js datepicker, и если да, то где? (Подобный контроль Кельвин Luck использует этот подход)

Текущий код

$ ("DateItem. ") DatePicker ({
showOn:." Кнопка",
... и т.д. ...
});
$ (". Ui-datepicker-div"). BgIframe();

+0

Я отправил электронное письмо автору датой, сообщив ему о вашем вопросе – 2008-10-01 16:41:16

ответ

1

По умолчанию вам следует позаботиться об этом.

IFrame по умолчанию включен в IE6 в datepicker. Стиль для него, называемый ui-datepicker-cover, который обрабатывает прозрачность. Единственный раз, когда это не так, в старом кодексе themeroller стиль не был там.

0

Я отметил комментарий Марка, что стиль ui-datepicker-cover должен справиться с этим. В моем случае правый и нижний края календаря по-прежнему будут показывать их вниз.

Похоже, что размер плавающего фрейма изначально установлен для следующих строк кода

if ($.browser.msie && parseInt($.browser.version, 10) < 7) // fix IE < 7 select problems 
$('iframe.ui-datepicker-cover').css({ width: inst.dpDiv.width() + 4, height: inst.dpDiv.height() + 4 }); 

в функции постобработки.

Этот размер затем сбрасывается каждый раз, когда дата изменяется по линии

inst.dpDiv.empty().append(this._generateHTML(inst)). 
find('iframe.ui-datepicker-cover'). 
css({ width: dims.width, height: dims.height }); 

Мое упрощенным решение было удалить эти два набора кода и зафиксировать размер стиля обложки в файле .css

//if ($.browser.msie && parseInt($.browser.version, 10) < 7) // fix IE < 7 select problems 
// $('iframe.ui-datepicker-cover').css({ width: inst.dpDiv.width() + 4, height: inst.dpDiv.height() + 4 }); 

inst.dpDiv.empty().append(this._generateHTML(inst))//. <=== note the // before the . 
//find('iframe.ui-datepicker-cover'). 
//css({ width: dims.width, height: dims.height }); 

в CSS файле установить ширину .ui-Datepicker покрова на 220px, высота до 200px

Стив

0

я имел что-то вроде этого, и использовать bgIframe плагин, просто я поставил функцию bgiframe(); внутри метода onBeforeShow() Datepicker в

проверить это

$('#date').DatePicker({ 
format:'Y/m/d', 
date: $('#date').val(), 
current: $('#date').val(), 
position: 'r', 
onBeforeShow: function(){ 
    $('#date').DatePickerSetDate($('#date').val(), true); 
    $('.datepickerContainer').bgiframe(); 
}, 
onChange: function(formated, dates){ 
    $('#date').val(formated); 
    $('#date').DatePickerHide(); 
} 
}); 
1

я волновался очень много из-за проблемы, тоже. Решение становится следующим.