2012-02-08 28 views
13

estoy usando las etiquetas de mi forma, como esto:evento de clic de enlace JavaScript jQuery en la etiqueta y en la casilla de verificación al mismo tiempo

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

Quiero ocultar un elemento cuando el usuario desmarca la casilla, de lo contrario, el documento presentado .

El problema es que si enlace el evento click a "foo", solo funcionará cuando el usuario haga clic en la casilla de verificación y no en la etiqueta. Por lo tanto, ¿también debo vincular un evento de clic en la etiqueta? ¿O debería incluir ambos elementos dentro de un lapso de tiempo? Mi HTML ya contiene 2344 elementos, por lo que me gustaría hacerlo sin agregar nada, y sin duplicar el código JavaScript o el selector, si es posible.

Respuesta

14

En lugar de unirse con el evento click(), debe obligar a utilizar el evento change() , entonces, sin embargo, este cambio se desencadena el resultado será el mismo:

$('#foo').change(
    function(){ 
     // do whatever 
    }); 

Referencias:

+0

¡Gracias por la respuesta completa! – Willy

+0

De nada; Me alegro de haber sido de ayuda. –

3

El evento change debe disparar para el input si el label o input se hace clic en:

$("#foo").change(function() { ... }); 

Ejemplohttp://jsfiddle.net/andrewwhitaker/6LMXW/

+0

¡Gracias por la respuesta rápida! – Willy

+0

@Willy: ¡No hay problema! Encantado de ayudar. –

Cuestiones relacionadas