Javascript JqueryUI日期选择器的定位:如何设置其相对于自动显示位置的位置?
我有一个搜索页面,上面有一个过滤框。此框中有两个日期过滤器,分别为“之前”和“之后”。每个日期过滤器都使用jQueryUIDatePicker。第一个是这样的: 第二个是这样的:Javascript JqueryUI日期选择器的定位:如何设置其相对于自动显示位置的位置?,javascript,jquery,calendar,datepicker,Javascript,Jquery,Calendar,Datepicker,我有一个搜索页面,上面有一个过滤框。此框中有两个日期过滤器,分别为“之前”和“之后”。每个日期过滤器都使用jQueryUIDatePicker。第一个是这样的: 第二个是这样的: 我需要之前日期框(图2)的日历显示在与之后日期框(图1)相同的位置。不过,我不认为我可以硬编码第二个日历的位置,因为虽然这可能在我的电脑上起作用,但更宽或更小的屏幕可能会将它放在错误的位置。我也不能将其设置为相对值,因为它的位置已使用绝对值设置。我怎样才能让第二个日历显示出来,比如说在自动显示的左侧显示200px?
我需要之前日期框(图2)的日历显示在与之后日期框(图1)相同的位置。不过,我不认为我可以硬编码第二个日历的位置,因为虽然这可能在我的电脑上起作用,但更宽或更小的屏幕可能会将它放在错误的位置。我也不能将其设置为相对值,因为它的位置已使用绝对值设置。我怎样才能让第二个日历显示出来,比如说在自动显示的左侧显示200px?我最初认为您需要连接到一个“onshow”事件,所以按照这个思路,我发现了这个问题: 在该帖子下面的示例中显示的事件处理程序中,您可以正确设置位置,即相对于另一个控件的位置
$("#datepicker").datepicker({
beforeShow: function (input, inst) {
setTimeout(function () {
inst.dpDiv.css({
top: 100,
left: 200
});
}, 0);
}
});
我使用的答案是:
$("#beforedate").datepicker({
beforeShow: function(input, inst) {
setTimeout(function () {
var offsets = $("#afterdate").offset();
var top = offsets.top + 25;
inst.dpDiv.css({
top: top,
left: offsets.left,
});
});
}
});