如何在IE 6上使用带bgIframe的JQuery UI日期选取器

问题描述:

我想在IE6网站上使用JQuery UI datepicker(最新稳定版本1.5.2)。但是我在IE6上遇到了组合框(选择)的常见问题,它们在其他控件上浮动。我已经尝试在没有运气的情况下声明datepicker后添加bgIframe插件。如何在IE 6上使用带bgIframe的JQuery UI日期选取器

我的猜测是,我附加bgIframe的.ui-datepicker-div在日历显示之前不存在。

我想知道是否可以将.bgIframe()命令直接放入datepicker .js文件中,如果存在,在哪里? (类似的控制由开尔文福使用这种方法)

当前代码

$( “DateItem。 ”)日期选择器({
showOn:“ 按钮”,
...等...
}); (“。ui-datepicker-div”)。bgIframe();

+0

我发送了一封电子邮件给datepicker作者,让他知道你的问题 – 2008-10-01 16:41:16

默认情况下应该照顾你。

iframe默认包含在IE6中的日期选择器中。它的风格称为ui-datepicker-cover,它处理透明度。唯一不是这种情况的是旧式的美乐家代码,风格不在那里。

我已经注意到Marc的评论,即用户界面日期选择器封面风格应该处理这一点。在我的情况下,日历的右边和底部仍然会显示下降。

它看起来像的iFrame的大小最初被代码

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-日期选择器盖的宽度设定为220px,高度至200像素

史蒂夫

我有这样的事情,并使用bgIframe插件,只是我把bgiframe();函数内部onBeforeShow()日期选择器的方法

检查

$('#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(); 
} 
}); 

我担心非常多,由于问题太多。 解决方案变成以下内容。

$(".DateItem").datepicker({ 
    showOn:"button", 
    beforeShow:function(){ 
    $('#ui-datepicker-div').bgiframe(); 
    }, 
    ... etc ... 
});