Es posible activar el evento de cambio en una casilla de verificación usar javascript/jquery?

Algo como esto (corro triggerChange en el clic de un botón):

<label><input type="checkbox" id="chk"/>Label for chk</label>

<script>
function triggerChange(){
    $("#chk").trigger("change");
}
</script>

Cuando ejecuto el código de arriba me sale este error: «gatillo no es una función«.

  • Por supuesto que es posible. La mayoría de ustedes probablemente han olvidado incluir jQuery.
  • Creo que usted estaría interesado por esta cuestión: stackoverflow.com/questions/10159214/… no olvides que te coloquen en un $(document).listo contexto !
  • Suena como $ devuelve algo que no es un objeto jQuery. Lo que significa que $ no podría ser de jQuery? También tenga en cuenta que la activación de la evento de cambio sólo se ejecutará el evento de cambio de los controladores, no va a cambiar el estado de la casilla de verificación.
  • Bien, pero ¿cómo quieres que sea triggerred gustan los cambios o haga clic en.
  • Yo no estoy interesado en el evento click. Tengo mis razones para no usar el clic. Quiero activar el evento de cambio sin hacer clic en la casilla de verificación.
InformationsquelleAutor Zelter Ady | 2013-04-17

5 Comentarios

  1. 24

    Que trigger is not a function mensaje de error indica que hay algo más que está en juego. De acuerdo a este MODO de pregunta:

    ¿Qué sucede cuando un selector de jQuery no se ha encontrado?

    no.good.at.coding dice:

    Tenga en cuenta, sin embargo, que usted debe asegurarse de que el selector es un objeto jQuery!
    De lo contrario, usted podría obtener un error que indica que «gatillo no es un
    función».

    Es probable que usted se ha olvidado de jQuery?


    Como para su implementación, que debe estar bien de la manera que usted la usa. Pero trigger debe ser utilizado para activar métodos de evento en los elementos que ya se han conectado a través de jQuery. Echa un vistazo a mi demo:

    Violín:

    Haga clic con el evento: http://jsfiddle.net/fS4R5/1/

    Sin evento click: http://jsfiddle.net/fS4R5/2/

    HTML:

    <label><input type="checkbox" id="chk"/>Label for chk</label>

    JS:

    function triggerChange(){
        $("#chk").trigger("change");
    }
    
    $("#chk").change(function() {
       alert("triggered!"); 
    });
    
    triggerChange();
    • Si no se adjunta, el navegador no elevar «gatillo no es una función» la excepción. jQuery es preciso para ello.
    • Gracias, actualizado mi respuesta con detalles respecto de la excepción.
    • Yo no estoy interesado en el evento click. Tengo mis razones para no usar el clic. Quiero activar el evento de cambio sin hacer clic en la casilla de verificación.
    • Se puede añadir un violín ejemplo de trabajo que provoca evento sin hacer clic?
    • No hay problema, respuesta actualizada y están allí.
  2. 4

    En jQuery, normalmente puede desencadenar un evento llamando es eventhandler método withoud los parámetros de función.

    Por ejemplo, haga clic en un controlador puede ser asignado como tal:

    $('#mything').click(function(e){dostuff});

    el evento de clic en sí mismo puede ser desencadenada por simplemente ejecutando:
    $('#mything').click();

    Sospecho que esto puede ser hecho por todos los eventos en jQuery.

    • También puede llamar con .trigger("click"). No hay nada de malo con ello.
    • Yo no estoy interesado en el evento click. Tengo mis razones para no usar el clic. Quiero activar el evento de cambio sin hacer clic en la casilla de verificación.
    • Así, ‘haga clic en’ fue sólo un ejemplo. Usted podría reemplazar con la función de ‘cambio’. Referencia: api.jquery.com/change
  3. 1

    Creo que el método preferido porque 1.9.1 está en ‘on’. Especialmente si se utiliza de forma dinámica añadido casillas de verificación.

    Te dicen que tienes un div con id=’divCOntent’ y que es una casilla de verificación con id=’cballaut’, usted podría hacer esto

    $('#divcontent').on('click', '#cballaut', function (e) {
                        alert(this.checked);
                    });
    • Que es difícil responder a la pregunta.
  4. 0

    uso prop método.

    $('#myCheck').prop('checked', true);
    $('#myCheck').prop('checked', false);
    • Esto no se disparará un evento de cambio.
  5. 0

    Asegúrese que la Entrada de Tipo casilla de verificación está activada, en caso de que se deshabilita gatillo no evento de fuego

    //fire event 
    $('#ceckBoxId').click();
    $('#ceckBoxId').trigger('click');

    o cambiar la casilla de verificación checked val

    $('#ceckBoxId').prop('checked', true);
    $('#ceckBoxId').prop('checked', false);

Dejar respuesta

Please enter your comment!
Please enter your name here