[Jquery] Trigger change () evento quando si imposta il valore di <select> con la funzione val ()


Answers

Una cosa che ho scoperto (nel modo più duro), è che dovresti avere

$('#selectField').change(function(){
  // some content ...
});

definito PRIMA di utilizzare

$('#selectField').val(10).trigger('change');

o

 $('#selectField').val(10).change();
Question

Qual è il modo più semplice e migliore per attivare l'evento change quando si imposta il valore dell'elemento select .

Mi aspettavo che eseguendo il seguente codice

$('select#some').val(10);

o

$('select#some').attr('value',  10);

risulterebbe nell'innescare l'evento di cambiamento, che penso sia una cosa abbastanza logica da fare. Destra?

Bene, non è il caso. Hai bisogno di triger change () evento facendo questo

$('select#some').val(10).change();

o

$('select#some').val(10).trigger('change');

ma sto cercando una soluzione che innescherebbe l'evento di cambiamento non appena il valore di selezione viene modificato da qualche codice javascript.




Lo separo e quindi utilizzo un confronto di identità per dettare cosa farà dopo.

$("#selectField").change(function(){
  if(this.value === 'textValue1'){ $(".contentClass1").fadeIn(); }
  if(this.value === 'textValue2'){ $(".contentclass2").fadeIn(); }
});