Trong trường hợp này giúp người khác:
Kể từ thư viện Pikaday là không thực sự có nghĩa là để được sử dụng theo cách này, tôi đã phải thực hiện một công trình xung quanh. Điều tốt là nó không yêu cầu sửa đổi mã Pikaday và do đó hoàn toàn tương thích với các phiên bản tương lai (giả sử chúng không đổi tên chức năng 'ẩn').
Đầu tiên tôi chỉ đính kèm bộ chọn ngày để một div trống và di chuyển nó xung quanh sử dụng css cho đến khi nó ở đúng chỗ:
var datePicker = new Pikaday({
field: $('#empty-div')[0]
});
Sau đó, tôi chỉ đơn giản là proxy ẩn chức năng Pikaday và tạm thời đặt nó vào một noop :
var hideFun = datePicker.hide;
datePicker.hide = function() {/*noop*/}
Bây giờ, tôi có thể hiển thị bộ chọn ngày và không lo lắng về nó biến mất vào tôi (vì nội nó sẽ gọi hàm noop ẩn mới):
datePicker.show();
Cuối cùng, khi tôi đã sẵn sàng để khôi phục lại hoạt động ban đầu của datepicker, tôi thiết lập lại các chức năng để một bản gốc, và ẩn datepicker (kể từ khi tôi đang thể hiện nó trong một phương thức):
datePicker.hide = hideFun;
datePicker.hide();
http://jqueryui.com/da tepicker/# inline –
Tôi muốn gắn bó với pickaday nếu có thể. Tôi đã luôn luôn chống lại các thành phần jqueryui. – oym
Tôi đã đưa ra một giải pháp liên quan đến việc đính kèm lịch vào div, sau đó định vị div sao cho lịch xuất hiện ở đúng vị trí. Điều quan trọng sau đó là proxy của hide() chức năng của lịch để bản chất của nó là một noop cho đến khi tôi muốn nó đóng vào thời gian đó tôi khôi phục lại chức năng ban đầu của nó. Điều này hoạt động tốt ngay bây giờ. Tôi vẫn sẽ giữ câu hỏi này mở trong trường hợp có một giải pháp tốt hơn. – oym