我看到了很多关于数据采集器定位的问题和答案,但无法找到对我的情况的答案。
因此,这里是我的datepicker创建者函数:
$(function() {
$( "#datepicker" ).datepicker({
dateFormat: 'dd/mm/yy',
minDate:current_date,
currentText: 'Today',
firstDay: 1,
});当我单击输入时,数据报警器会出现在正确的位置,但当我缩小浏览器窗口的宽度时,它将保持在相同的位置(这是因为它的位置是绝对的)。
我需要更改选择器的外观,使其保持与输入相同的位置。
提前感谢
发布于 2014-08-27 14:41:02
在jQueryUI的$.datepicker._showDatepicker函数中可以找到重新定位数据报警器的代码。对.resize处理程序进行调整是相当丑陋的,但并不是非常困难。下面是让魔法得以实现的台词:
inst = $.datepicker._getInst(input);
if (!$.datepicker._pos) { // position below input
$.datepicker._pos = $.datepicker._findPos(input);
$.datepicker._pos[1] += input.offsetHeight; // add the height
}
offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
// and adjust position before showing
offset = $.datepicker._checkOffset(inst, offset, isFixed);
inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
"static" : (isFixed ? "fixed" : "absolute")), display: "none",
left: offset.left + "px", top: offset.top + "px"});inst.dpDiv是对数据报童的包装器的引用,而inst是对数据报器本身的引用。
这里有把小提琴有一个极简的例子。小心边缘的情况。
https://stackoverflow.com/questions/25529321
复制相似问题