2010-12-02 10 views
8

No estoy seguro de cómo lograr esto. Lo que quiero hacer es ocultar un div basado en un valor de casilla de verificación. Este es mi código para alternar.Alternar div según el valor de casilla de verificación

apreciar cualquier ayuda

.always es la casilla de verificación

$(document).ready(function() { 
      $('.always').click(function() {     
       $('#dates').toggle(); 
      }); 
     }); 
+0

Fuera de tema: al usar document.ready creo que es mejor usar el alias/atajo 'jQuery (función ($) {});' – zzzzBov

+0

gracias por la sugerencia. ¿Hay alguna razón para esto? –

Respuesta

27

.toggle() toma un valor booleano, así, como este:

$(function() { 
    $('.always').change(function() {     
    $('#dates').toggle(!this.checked); 
    }).change(); //ensure visible state matches initially 
}); 

You can test it out here. Supongo que en el de arriba quiere que el #dates esté oculto si .always está marcada, eso es lo que hará.

+0

Esto no funciona para mí por alguna razón. Intenté que la casilla de verificación se marcara de manera predeterminada y no respondería, todavía está visible. –

+0

@ Dejan.S - ¿recibe un error de algún tipo? –

+0

No es que yo pueda ver. Mi Firebug no me deja depurar el JS por alguna extraña razón. –

9
$('.always').change(function() { 
$('#dates').toggle(!this.checked); 
}); 
+0

change() es mucho mejor para esto ya que incluso funciona cuando la casilla de verificación se cambia por algún otro medio. – jxpx777

+0

gracias, intenta eso y téngalo en cuenta .. –

+0

Al usar '.toggle()' suponiendo que el estado visible coincide y no se modificó de otra manera, mejor pasar un booleano a * asegurar * que coincida :) –

Cuestiones relacionadas