Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JqueryUI日期选择器的定位:如何设置其相对于自动显示位置的位置?_Javascript_Jquery_Calendar_Datepicker - Fatal编程技术网

Javascript JqueryUI日期选择器的定位:如何设置其相对于自动显示位置的位置?

Javascript JqueryUI日期选择器的定位:如何设置其相对于自动显示位置的位置?,javascript,jquery,calendar,datepicker,Javascript,Jquery,Calendar,Datepicker,我有一个搜索页面,上面有一个过滤框。此框中有两个日期过滤器,分别为“之前”和“之后”。每个日期过滤器都使用jQueryUIDatePicker。第一个是这样的: 第二个是这样的: 我需要之前日期框(图2)的日历显示在与之后日期框(图1)相同的位置。不过,我不认为我可以硬编码第二个日历的位置,因为虽然这可能在我的电脑上起作用,但更宽或更小的屏幕可能会将它放在错误的位置。我也不能将其设置为相对值,因为它的位置已使用绝对值设置。我怎样才能让第二个日历显示出来,比如说在自动显示的左侧显示200px?

我有一个搜索页面,上面有一个过滤框。此框中有两个日期过滤器,分别为“之前”和“之后”。每个日期过滤器都使用jQueryUIDatePicker。第一个是这样的:

第二个是这样的:


我需要之前日期框(图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,
            });
        });
    }
});