2009-03-04 12 views
5

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

8

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.

+0

grazie ybo, provatelo! –

+1

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! –

+0

Grande;) Puoi provare a inviare l'idea/codice agli autori, potrebbero essere interessati. – ybo