2012-04-24 10 views
11

Quando clicco su un Selezionare l'opzione, sto gestendo l'evento Changed.simulando clic del mouse su selezionare l'opzione con jQuery

Voglio simulare questo nel codice, e lo hanno lo stesso aspetto di quando l'utente fa clic sull'opzione.

Finora, l'impostazione attributo 'selezionato' sulla scelta non mette in evidenza che la stessa di quando si fa clic su di esso.

posso innescare 'cambiare' l'opzione e ha colpito il mio gestore, ma l'opzione della lista non è selezionata come se cliccato.

Suggerimenti?

UPDATE: Il codice di selezione query funziona bene - grazie per le risposte. Il problema era mio (ovviamente). Avevo il codice di selezione al di fuori del Jquery.Ajax Success: block, quindi penso che funzionasse, ma il codice di risposta ajax lo stava tenendo a bada.

+1

Hai provato .focus() dopo aver selezionato l'opzione? – nnnnnn

+0

no non ancora provato a mettere a fuoco. Devo dire che questa è una lista non la combo, quindi con l'attributo multiplo. – R3lm

risposta

0
$("option").attr("selected","selected"); 

seleziona l'opzione desiderata e dopo di ciò è possibile attivare l'evento.

e non dimenticate di cancellare attributo selezionato le altre opzioni utilizzando:

$("option").attr("selected",null); 

o

$("option").removeAttr("selected"); 
+0

Almeno in IE, con multiplo = attributo multiplo, le impostazioni selezionate non sembrano evidenziare l'opzione come quando si fa clic. – R3lm

+0

Dovrebbe funzionare. Ecco un esempio: http://stackoverflow.com/q/2179529/1262700 –

5
​$('option[value="4"]').attr('selected', 'selected').parent().focus();​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

funziona per me. Vedere http://jsfiddle.net/TZVyh/1/

+0

Proverò e aggiornerò grazie! – R3lm

+0

È curioso. Dopo averlo eseguito, l'elemento ha un riquadro grigio molto chiaro attorno ad esso - è selezionato, ma non evidenziato come quando si fa clic su di esso con il mouse (blu). La casella di riepilogo ha lo stato attivo, e quando ho la freccia su/giù, l'opzione sopra o sotto l'elemento selezionato viene quindi selezionata e anche evidenziata in blu, con lo stile che voglio! – R3lm

+0

Che browser stai usando? –

0

... ma l'opzione della lista non è selezionata come se cliccato.

io non comprendere appieno quello che stai cercando di fare, ma $('select').change() funziona in modo simile a $('select option').click(). In change evento $(this).val() è il valore dell'opzione selezionata come pure in caso click.

In entrambi i casi è possibile selezionare un'opzione con $('select[value="yourvalue"]').prop('selected', true);

+0

Dovrei elaborare. Quando clicco sull'opzione accadono due cose: l'elemento opzione è evidenziato in blu (chiaramente una sorta di cambiamento di stile). In secondo luogo, l'evento di cambiamento viene attivato.L'impostazione dell'attributo 'selezionato' su un'opzione nel codice non applica lo stesso stile visivo di quando cliccato. – R3lm

+0

"seleziona" sono complicati, non puoi modificarli e dipendono dal sistema operativo. – elclanrs

5

stavo lavorando con i ColumnFilterWidgets jquery datatable di plugin e avevo bisogno di fare quanto segue per eseguire l'azione di filtro (sulla base di risposte da elclanrs e Ben Foster):

$("option").attr('selected', 'selected').parent().focus(); 
$("option").parent().change(); 
+0

Questa dovrebbe essere la risposta accettata in quanto è l'unica che "simula" lo stesso comportamento esatto dell'interazione dell'utente. –

Problemi correlati