2013-07-16 5 views
5

Ho una semplice SELECT, con il plug-in scelto da jQuery, che appare molte volte sulla pagina. Nella parte superiore della selezione è l'opzione "Aggiungi nuovo". L'idea è che mostro una finestra di dialogo se l'utente fa clic su Aggiungi nuovo.JavaScript/jQuery seleziona l'evento dell'elemento quando l'opzione selezionata viene nuovamente selezionata

Utilizzando l'evento click di jQuery, è semplice e funziona correttamente la prima volta. Tuttavia, se l'utente annulla la finestra di dialogo e fa nuovamente clic su Aggiungi nuovo, l'evento clic non viene attivato.

Ho provato ad aggiungere un gestore di eventi click all'opzione stessa senza successo. Ho anche provato senza il plug-in scelto, e senza fortuna. Non penso che il problema sia scelto.

Ecco un jsfiddle semplice che mostra il problema: http://jsfiddle.net/7cMEg/

$('.cls').chosen().change(function() { if ($(this).val()==='-1') alert('clicked'); }); 

Fare clic sulla casella di selezione, e scegliere Aggiungi nuovo. Apparirà un avviso. Ma ora che Aggiungi nuovo è selezionato, quando fai clic sulla casella di selezione e fai nuovamente clic su Aggiungi nuovo, non accade nulla: l'evento click non viene attivato. C'è un altro evento che posso usare? Qualche altro suggerimento (forse un hyper link unstyled)?

+1

è perché non v'è alcun cambiamento accade quando si fa clic il 'new' Aggiungere seconda volta –

risposta

2

L'evento viene attivato su change e non su click. Poiché il valore non viene modificato al secondo clic, l'avviso non viene visualizzato.

Visualizzazione avviso click - fiddle

+1

OK, grazie. Il tuo violino non funziona in Safari v6.0.5 (il mio browser predefinito). Inoltre, non funziona in Chrome v28.0.1500.71. Funziona in Firefox v22.0. Non mi sono preso la briga di provare IE. Se rimuovo "l'opzione" dal selettore, funziona in Safari ma non ancora in Chrome e diventa leggermente fastidioso in Firefox (attivando il clic e il rilascio della casella di selezione). –

+0

@BumptiousQBangwhistle: non è una soluzione completa pronta. Non l'ho provato dappertutto e non ho tempo di farlo. Volevo solo individuare il problema. Potrebbe essere questo ti aiuterà a raggiungere la soluzione. – xyz

Problemi correlati