2010-12-02 13 views
8

Ich bin mir nicht sicher, wie dies zu erreichen ist. Was ich tun möchte, ist ein Div auf einem Checkbox-Wert zu verstecken. Dies ist mein Code für den Toggle.Toggle Div basierend auf Checkbox-Wert

jede Hilfe dankbar

.always ist die Checkbox

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

Off-Topic: wenn ich document.ready benutze, ist es besser, den Alias ​​/ die Abkürzung 'jQuery (function ($) {});' – zzzzBov

+0

danke für den Tipp zu verwenden. Gibt es einen Grund dafür? –

Antwort

27

.toggle() auch einen Booleschen nimmt, wie folgt aus:

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

You can test it out here. Ich nehme an, in dem oben genannten wollen Sie die #dates ausgeblendet, wenn .always überprüft wird, das ist, was es tun wird.

+0

Das funktioniert aus irgendeinem Grund nicht für mich. Ich habe versucht, das Kontrollkästchen standardmäßig aktiviert zu haben, und es wird nicht darauf reagieren, es ist immer noch sichtbar. –

+0

@ Dejan.S - erhalten Sie einen Fehler in irgendeiner Form? –

+0

Nicht dass ich sehen kann. Mein firebug läßt mich das JS aus irgendeinem seltsamen Grund nicht debuggen. –

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

change() ist dafür viel besser, da es sogar funktioniert, wenn das Kontrollkästchen auf andere Weise geändert wird. – jxpx777

+0

Danke, versuche das und behalte das im Hinterkopf. –

+0

Mit '.toggle()' nimmst du an, dass der sichtbare Zustand übereinstimmt und auf keine andere Weise geändert wurde, besser um einen Booleschen Wert zu übergeben * achte darauf * :) –

Verwandte Themen