我有一个使用 jQuery ui 日期选择器的多个实例的网页。我的网页将显示约 80 条记录,这超出了单个屏幕截图的范围。
<% foreach (var record in Model) { %>
<div class="recordname"><%=record.name%></div>
<%=Html.TextBox("DateTimePicker", null, new { @class = "date-pick" } )%>
// <-- additional html here -->
<% } %>
我已将日期选择器的默认值设置如下:
$(".date-pick").each(function() {
$(this).datepicker({
dateFormat: 'dd M yy',
showOn: 'button',
buttonImage: '/Images/datepickericon.png',
buttonImageOnly: true
});
});
当页面首次加载时,如果我单击屏幕上可见的任何日期选择器图标(即不滚动),则日期选择器将按预期显示。
但是,如果我向下滚动页面,然后单击日期选择器图标,则日期选择器不会出现在屏幕窗口中,而是呈现在屏幕顶部附近。
有什么想法可以解决这个问题吗?
我正在使用:
- IE7
- asp.net mvc
- jquery.ui.datepicker.js (UI/API/1.8/Datepicker)
最佳答案
我也遇到了同样的问题,我使用的是 IE9,而是使用 document.documentElement.scrollTop
我在 JS 代码上编辑了以下行
$.datepicker._pos[1] += input.offsetHeight + document.body.scrollTop;
这是因为document.documentElement.scrollTop
返回0,对我来说上面的代码解决了我的问题
关于jQuery ui datepicker向下滚动网页时定位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2834857/