2016-10-04 6 views
0

Ich habe dieses Stück Code hier:jquery Toggle/untoggle hinzufügen/entfernen Klasse

$('.plus-area-current').click(function() { 
     $(".current-communities").slideToggle(function() { 
      $(".plus-area-current i").removeClass("fa-plus"); 
      $(".plus-area-current i").addClass("fa-minus"); 
     }, function() { 
      $(".plus-area-current i").removeClass("fa-minus"); 
      $(".plus-area-current i").addClass("fa-plus"); 
     }); 
    }); 

Wenn der Benutzer klickt Plus-Bereich-Strom, Strom Gemeinden untoggled bekommt, was ich versuche,/zu, füge Entfernen Sie die fa-plus- und fa-minus-Klassen aus einem ausstehenden Element, wenn das Element current-communities aktiviert ist oder nicht. Dieser Code oben funktioniert nicht, das Element schaltet aber die Klasse ändert sich nicht, wenn ich dies tun:

$('.plus-area-current').click(function() { 
     $(".current-communities").slideToggle(); 
     $(".plus-area-current i").removeClass("fa-plus"); 
     $(".plus-area-current i").addClass("fa-minus"); 
    }); 

Es funktioniert, aber wenn ich es nach oben bitte anklicken zurück, sein ändern, um das Plus nicht zurück .

Antwort

0

Verwenden toggleClass() statt:

$('.plus-area-current').click(function() { 
    $(".current-communities").slideToggle(); 
    $(".plus-area-current i").toggleClass("fa-plus fa-minus"); 
}); 

Wenn Sie den Klassenwechsel lieber nicht passieren, bis die slideToggle() Animation abgeschlossen ist, legen Sie diese Zeile innerhalb der Callback, wie folgt aus:

$('.plus-area-current').click(function() { 
    $(".current-communities").slideToggle(function() { 
     $(".plus-area-current i").toggleClass("fa-plus fa-minus"); 
    }); 
});