2012-06-02 20 views

risposta

2

Ho usato il

$('.typeahead').removeClass('dropdown-menu'); 

e

$('.typeahead').addClass('dropdown-menu'); 

per nascondere mostrare che il suggerimento a discesa.

6

Sì, è possibile. E 'abbastanza facile con l'utilizzo di metodo jQuery .unbind()

Ad esempio:

$('.typehead').typehead(); 
//and then you can dynamically unbind this plugin 
$('.typehead').unbind(); 
+0

Grazie! Per il tuo tempo. Ma non posso usare unbind. Ma ho usato $ ('. Typeahead'). RemoveClass ('dropdown-menu'); Questo metodo consente di nascondere il menu a discesa. e aggiungi nuovamente questa classe –

+0

Usa questo metodo con cautela, poiché rimuoverà tutti i listener di eventi dall'elemento DOM selezionato, piuttosto che solo gli ascoltatori typeahead (che si trovano su 'blur',' focus', 'input' e' keydown '). –

1

Ho dovuto usare una soluzione diversa (e hackier) perché sto cambiando i dati di battitura ogni volta che lo leggo e non riesco a far funzionare le altre risposte. Lo lascerò qui nel caso qualcuno ne avesse bisogno.

Rimuovere typeahead

var parent = $('.typeahead').parent(); 
var html = parent.html(); 
$('.typeahead).remove(); 
parent.html(html); 

Aggiungi typeahead

$('.typehead').typehead(); 
6

So di essere in ritardo alla festa, sotto rimuoverà invece di nascondere.

$('.typeahead').typeahead('destroy'); 
+1

+1 Questo aiuta quando si utilizza lo stesso campo da compilare (ad esempio in un popup) Il campo non viene cancellato automaticamente, in questo modo il 'typeahead' viene rimosso in modo silenzioso senza disturbare il campo e il suo contenuto. Questo è anche il modo corretto per rimuovere il typeahead – Pierre

+0

questo non funziona per la mia applicazione. elimina i dati in aree completamente diverse. ma ri-uso il mio typeahead quindi ho bisogno di un modo per aggiornare i dati che tira. – user2847749

+0

Non sono sicuro del motivo per cui non funzionerebbe per te. Stai usando remote o prefetch? Stai usando IE? IE a volte ha problemi di memorizzazione nella cache. Se si tratta di IE, si può provare ad aggiungere '$ .ajaxSetup ({cache: false});' per correggere IE. –

1

Questo codice funziona per me.

var typeaheadEle = $('#myTypeahead').data('typeahead'); 
if (typeaheadEle) {typeaheadEle.source = [];} 

dove myTypeahead è id dell'elemento di input.

+0

Questo è il metodo migliore da utilizzare per Bootstrap v2.3.2, imo. –

0

Ho trovato $('.some-typeahead-parent .tt-dropdown-menu').hide(); per funzionare al meglio per più tipi di dati tipeahead.

Problemi correlati