Pregunta ¿Por qué no puedo activar el evento `change` de la radio usando jquery?


La página está aquí:

http://cistrome.org/cps/seqconfig?did=2693

Y los códigos js originales están debajo (este funciona bien):

$(document).ready(function(){
    $(".open_gene").on('change', function(event) {
        $('#Gene_field').show();
    });

    $(".close_gene").on("change", function(event){
        $("#Gene_field").hide();
    });
});

Entonces el .close_gene tiene un controlador de eventos para change. Pero cuando quiero activar este evento manualmente para ocultar el #Gene_field, Me gusta esto:

>>> $('.close_gene').trigger("change")

En FireBugs, el valor devuelto es:

[input#nolimit_radio.close_gene all]

Pero el #Gene_field no está oculto ..

Me preguntaba por qué no puedo desencadenar change evento que ya debería bind a function(event){ $("#Gene_field").hide();}. ¿Alguien tiene ideas sobre esto? ¡Gracias!


5
2017-11-19 05:33


origen


Respuestas:


Prueba esto:

$(".close_gene").click();

Está funcionando bien para mí en la Consola Firebug ... :)

Actualizar:

Esto también debería funcionar, pero no cambiará el estado del botón de radio

$(document).ready(function(){
  $(document).delegate(".open_gene",'change', function(event) {
     $('#Gene_field').show();
  });

  $(document).delegate(".close_gene", "change", function(event){
     $("#Gene_field").hide();
  });
});

$('.close_gene').trigger("change");

8
2017-11-19 05:42