javascript - functions - Cómo desencadenar un evento de cambio para Elegido(jQuery)
jquery chosen cdnjs (6)
Esto es lo que descubrí:
$(''#my-select'').val(5).trigger("liszt:updated")
liszt:updated
ya no funciona en la nueva versión del elegido, en lugar de usarlo a continuación, como sugiere la respuesta de Alexandru Cojan
trigger("chosen:updated");
Antes de hacer clic en el botón de reinicio, elijo "Compañía" en Elegido (lista desplegable). El evento ocurre normalmente después de hacer clic en restablecer. Elijo "Compañía" de nuevo, pero el change
evento en la lista desplegable no ocurre.
¿Alguien podría decirme cómo activar el evento de cambio para la lista desplegable después de hacer clic en el botón de reinicio y luego en el mismo elemento?
El código que tengo hasta ahora:
$("#mainMenu").change(function(e){
e.preventDefault();
loadFirstManu(true);
});
Código para el botón de reinicio:
$("#btn_reset").click(function() {
CKEDITOR.instances.ckeditor.setData('''');
$(''.mchosen'').each(function() {
$(this).val('''').trigger(''liszt:updated'');
$(''#submenu'').attr(''disabled'', ''disabled'').html('''');
$(''#secondsubmenu'').attr(''disabled'', ''disabled'').html('''');
$(''#s-menu'').removeClass(''required'').html('''');
$(''#secondsubmenu'').removeClass(''validate[required]'');
$(''#tabmenu'').attr(''disabled'', ''disabled'').html('''');
$(''#tab'').removeClass(''required'').html('''');
});
});
No sé si este es su caso o no, pero su código anterior debería funcionar,
$("#mainMenu").change(function(e){
e.preventDefault();
loadFirstManu(true);
});
pero tenga en cuenta que el evento de "cambio" ocurre en la mayoría de los navegadores cuando desenfoca la entrada seleccionada
Entonces, al hacer clic en restablecer , justo antes de ejecutar la acción de restablecimiento, se activa el cambio.
Ahora intente hacer clic fuera de la entrada de selección después de cambiar la selección y ver si todavía funciona o no
Si no me equivoco al entenderlo, entonces desea activar el cambio de evento después de hacer clic en el botón de reinicio. puede hacer esto simplemente agregando una línea a su código // código
$("#btn_reset").click(function(){
// your code here
$("#mainMenu").trigger(''change'');
//you can write this as per your requirements ie. at start or end.
});
Si solo necesito actualizar el valor seleccionado, .trigger(''chosen:updated'')
. Pero si tengo un controlador de cambios y quiero que se llame, necesito hacer .trigger(''chosen:updated'').change()
Tal vez debería intentar usar .on, ya que su $ (''# mainMenu'') puede haber cambiado en alguna parte (no puedo decir sin un ejemplo). Intenta hacer esto:
$("body").on(''change'',''#mainMenu'',function(){
...
});
o cualquier selector padre en lugar de cuerpo "pesado"
para la versión más reciente de elegida el evento es "elegido: actualizado"
$(selector).trigger("chosen:updated")