2014-05-16 3 views
8

나는 Pikaday javascript datepicker을 사용하고 있습니다.Pikaday datepicker를 항상 표시하는 방법

기본 기능은 입력에 연결하여 입력을 클릭하면 datepicker가로드되고 위치는 입력과 관련됩니다.

내가 원하는 것은이 라이브러리를 사용하여 항상 보이는 캘린더를 표시하는 것입니다. 나는 div에 그것을 부착하는 것과 같은 성공없이 여러 가지를 시도했다. 저는 항상 그것을 보여주고 그 위치를 제어 할 수 있기를 바랍니다.

아이디어가 있으십니까?

Pikaday 라이브러리가 정말이 방법에 사용되는 의미되지 않기 때문에, 나는 주위에 작업을 구현했다 :

+0

http://jqueryui.com/da tepicker/# inline –

+1

가능한 경우 피킹 데이를 선호합니다. 난 항상 jqueryui 구성 요소를 싫어했습니다. – oym

+0

저는 div에 달력을 연결하고 일정을 올바른 위치에 올리도록 div를 배치하는 방법을 생각해 냈습니다. 그런 다음 열쇠는 달력의 hide() 함수를 프록시 처리하여 원래의 기능을 복원 할 때까지 닫히기 전까지 아무런 효과가 없도록합니다. 이 지금은 잘 작동합니다. 더 나은 해결책을 제시하기 위해이 질문을 계속 열어 두겠습니다. – oym

답변

5

는 경우이 다른 사람이 도움이됩니다. 좋은 점은 Pikaday 코드 자체를 수정할 필요가 없으므로 이후 버전과 완벽하게 호환된다는 것입니다 ('숨김'기능의 이름을 변경하지 않는다고 가정).

먼저 난 그냥 빈 DIV에 날짜 선택을 첨부 할 때까지 CSS를 사용하여 주위를 이동의 정확한 지점에서 :

var datePicker = new Pikaday({ 
    field: $('#empty-div')[0] 
}); 

그럼 간단을 프록시 Pikaday 숨기기 기능과 일시적으로 조작 불능으로 설정 :

var hideFun = datePicker.hide; 
datePicker.hide = function() {/*noop*/} 

지금, 나는 (내부적으로는 새로운 무 조작 숨기기 함수를 호출하기 때문에) 그것이 나에 사라지는 걱정 날짜 선택을 표시하고 수 없습니다

마지막으로

내가 날짜 선택기의 원래 복원 작업을 할 준비가되면, 나는 원래 하나에 기능을 재설정하고 (I 모달에서 그것을 보여주는거야 이후)에 날짜 선택기를 숨기기 :

datePicker.hide = hideFun; 
datePicker.hide(); 
을 처음에는
9

, 나는 또한 해키 솔루션을 구현 한, 그러나 나는 Pikaday의 날짜 선택기가 항상 볼 수 있도록하기 위해 정기적 방법을 발견 : 여기에 예와

var picker = new Pikaday(
{ 
    field: document.getElementById('datepicker'), 
    bound: false, 
    container: document.getElementById('container'), 
}); 

: http://dbushell.github.io/Pikaday/examples/container.html

관련 문제