Sto usando l'estensione di jquery autocomplete 1.0.2 di Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer. Sto tentando di eseguire la mia funzione di callback quando vengono richiamati .show() e .hide() dal controllo di completamento automatico. Non ho trovato alcun modo per riconoscere effettivamente la mia funzione di callback. Se qualcuno ha familiarità con questo controllo e può essere d'aiuto, sarei molto riconoscente.Come si allega una funzione di callback personalizzata all'estensione del completamento automatico jquery?
risposta
Spiacente, non ho alcuna risposta facile alla tua domanda, ho controllato il codice sorgente del plugin e non ho trovato alcun meccanismo per permetterti di volere. Penso che dovrai aggiornare tu stesso questo plugin per farlo funzionare come desideri.
L'idea è di aggiungere i vostri callback al parametro options
e quindi fare in modo che il plug-in utilizzi questi callback. Innanzitutto, dovrai modificare il codice del plugin. Vai alla funzione che crea la classe incaricato di mostrare/nascondere il controllo di completamento automatico:
$.Autocompleter.Select = function (options, input, select, config) {
Se si scorre verso il basso, si può vedere che questa funzione restituisce un oggetto con show()
e hide()
metodi. È possibile aggiungere il seguente codice:
hide: function() {
...
options.showCallback && options.showCallback(); // Invoke callback function if set
},
...
show: function() {
...
options.hideCallback && options.hideCallback(); // Invoke callback function if set
},
Infine, quando si crea il completamento automatico, è necessario aggiungere le vostre funzioni di callback per le opzioni:
$("#myTextBox").autocomplete("http://...",
{
showCallback : function() { /* do what you want here */ },
hideCallback : function() { /* do what you want here */ }
});
Non testato a tutti, è solo una soluzione rapida e sporca . Spero che aiuti.
grazie ybo, provatelo! –
funziona! sei fantastico! In realtà ho lo show e nascondo le funzioni di callback che voglio chiamate predefinite, quindi faccio solo showCallback: myShow, hideCallback: myHide e funziona, grazie ancora! –
Grande;) Puoi provare a inviare l'idea/codice agli autori, potrebbero essere interessati. – ybo