2014-08-27 119 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