2016-03-21 4 views
3

Ich habe eine wirklich einfache jquery.Click() FunktionJquery.Click() doens't Arbeit, nachdem es verwendet wird einmal

//hide divs 
$("#a-1").hide(); 

$(".v-1").click(function(){ 
    $("#a-1").show(); 
    $(".v-1").addClass("c-it"); 
    $(".c-it").click(function(){ 
     $("#a-1").hide(); 
     $(".v-1").removeClass("c-it"); 
    }); 
}); 

Also, wenn v-1 a-1 zu zeigen hat und es angeklickt wird fügt eine Klasse namens c-it hinzu. Das funktioniert, danach klicke ich c-it, a-1 wird sich wieder verstecken und die c-it-Klasse wird entfernt. So, jetzt sind wir wieder am Anfang, aber jetzt, wenn ich auf v-1 klicke, passiert nichts, warum weiß jemand warum?

Html

<i class="glyphicon glyphicon-plus v-1">&nbsp;<span>This is a question</span></i> 
     <div id="a-1"><p>Awnser</p></div> 
+0

Sie nur klicken Sie müssen

+1

Nachdem Sie den zweiten befestigen Click-Handler, beide Handler werden mit einem Klick auf '.v-1' ausgeführt. Sie können das testen, indem Sie in jedem einen 'alert()' hinzufügen. Sie müssen die Logik in einem einzelnen Handler behandeln. –

Antwort

5

verwenden nur toggle() und toggleClass() besser für Sie

$("#a-1").hide(); 

$(".v-1").click(function() { 
    $("#a-1").toggle('hide'); 
    $(".v-1").toggleClass("c-it"); 

}); 
3

Sie sollten einen einzigen Klick-Handler verwenden, die den sichtbaren Zustand und die Klasse einfach umschaltet.

$(".v-1").click(function(){ 
    $("#a-1").toggle(); 
    $(".v-1").toggleClass("c-it"); 
}); 
Verwandte Themen