2014-08-27 57 views
0

我看到很多关于datepicker定位的问题和答案,但无法找到我的情况的答案。jQuery datepicker定位

所以,这里是我的日期选择器生成器功能:

$(function() { 
    $("#datepicker").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     minDate:current_date, 
     currentText: 'Today', 
     firstDay: 1, 
    }); 

当我点击输入的日期选择器出现在正确的位置,但是当我降低了浏览器窗口的宽度,它停留在相同的位置(那是因为它的位置是绝对的)。

我需要改变选择器外观,以便它保持与输入位置相同。提前

+0

请发送完整的示例代码,其中包括相关的HTML和CSS。另外,jsFiddle.net示例通常很有用。 – j08691 2014-08-27 14:11:51

+0

http://jsfiddle.net/gdr7Ljvt/ 这里是小提琴,但我不知道它有帮助 – Zaur 2014-08-27 14:34:50

回答

1

是重新定位日期选择器的代码

感谢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是参考日期选择器本身。

Here's a fiddle一个简约的例子。谨防边缘情况。

+0

非常感谢您的回答,它真的帮了大忙! – Zaur 2014-08-27 14:43:28

+0

没有probs,如果答案帮助解决你的问题考虑[ticking it] – blgt 2014-08-27 14:54:21

+0

对不起,我是新来的,不清楚规则。我不能upvote你的答案,因为我没有最小声誉:( – Zaur 2014-08-27 15:14:32