我有一个页面,其中包含两个文本框,其中添加了 jquery datepicker 通过
function setDatepickers() {
$('.datepicker').datepicker();
$('.datepicker').attr('date', 'date');
}
页面底部有文本框,我们需要稍微向下滚动才能看到文本框。当我点击文本框时,它会打开日期选择器,但它位于不同的垂直位置,比如有时在输入文本框上方一点,有时我需要向上滚动才能看到日期选择器。这仅在 IE8 中发生,而不在 Firefox 中发生。Firefox 3.6.3 显示它完美,几乎附加到输入文本框。
使用的jquery版本有:jquery v1.4.1 jquery UI 1.8.5
我试图从其中的 checkoffset 方法中获取值,并发现以下结果:
_checkOffset: function (a, c, d) {
var f = a.dpDiv.outerWidth(),
j = a.dpDiv.outerHeight(),
k = a.input ? a.input.outerWidth() : 0,
l = a.input ? a.input.outerHeight() : 0,
m = document.documentElement.clientWidth + b(document).scrollLeft(),
o = document.documentElement.clientHeight + b(document).scrollTop();
alert(j); alert(k); alert(l); alert(m); alert(o);
c.left -= this._get(a, "isRTL") ? f - k : 0;
c.left -= d && c.left == a.input.offset().left ? b(document).scrollLeft() : 0;
c.top -= d && c.top == a.input.offset().top + l ? b(document).scrollTop() : 0;
c.left -= Math.min(c.left, c.left + f > m && m > f ? Math.abs(c.left + f - m) : 0);
c.top -= Math.min(c.top, c.top + j > o && o > j ? Math.abs(j + l) : 0);
return c
},
警报的结果是:
IE8:159 135 25 1132 359
火狐:159 136 25 1136 843
Final Div 出现在:Firefox:前 582 左 98
IE:前98,左96
我认为 IE8 中的 Top 属性设置不正确,但不确定需要更改什么来解决这个问题?任何帮助是极大的赞赏。
谢谢,阿什什耆那教