Nel caso in cui questo aiuta qualcun altro:
Dal momento che la libreria Pikaday non è destinata in realtà per essere utilizzato in questo modo, ho dovuto realizzare un lavoro in giro. La cosa buona è che non richiede modifiche al codice Pikaday stesso ed è quindi completamente compatibile con le versioni future (supponendo che non rinominino la funzione "nascondi").
Per prima cosa ho appena allego il selettore data per un div vuoto e muoverlo usando css fino alla sua nel posto giusto:
var datePicker = new Pikaday({
field: $('#empty-div')[0]
});
Poi ho semplicemente procura la pelle funzione di Pikaday e impostarlo su un noop temporanea :
var hideFun = datePicker.hide;
datePicker.hide = function() {/*noop*/}
Ora, posso mostrare il selettore data e non ti preoccupare di fuga su di me (in quanto internamente richiamerà la nuova funzione noop nascondere):
datePicker.show();
Infine, quando sono pronto a ripristinare il funzionamento originale del DatePicker, I ha ripristinato la funzione di quella originale, e nascondere il DatePicker (dal momento che sto mostrando in un modale):
datePicker.hide = hideFun;
datePicker.hide();
http://jqueryui.com/da tepicker/# inline –
Preferirei attenermi al pickaday se possibile. Sono sempre stato contrario ai componenti jqueryui. – oym
Ho trovato una soluzione che prevede di allegare il calendario a un div, quindi posizionare il div in modo tale che il calendario si trovi nella posizione corretta. La chiave quindi è di eseguire il proxy della funzione hide() del calendario in modo che sia essenzialmente un noop fino a quando non voglio che si chiuda in quale momento ripristinare la sua funzionalità originale. Questo funziona bene ora. Continuerò a mantenere questa domanda aperta nel caso ci sia una soluzione migliore. – oym