2012-04-10 8 views

Antwort

3

box.removeClass("hide"); nach slideDown komplette Demo sein muss: http://jsfiddle.net/3Gc6Q/9/:

$(".link").click(function(e) { 

    e.preventDefault(); 
    var box = $("#test"); 

    if (box.hasClass("hide")) { 

     box.slideDown(function(){box.removeClass("hide");}); 
    } 
    else { 
     box.slideUp(function() { 

      box.addClass("hide"); 

     }); 

    } 


}); 
0

Versuchen slideToggle()

$(".link").click(function(e) { 

    e.preventDefault(); 
    var box = $("#test"); 

    box.slideToggle('slow'); 
});​ 

Dies wird drastisch vereinfacht mit, was hast du da. Es erlaubt Ihnen auch, einige der unnötigen CSS zu entfernen, die Sie auf dem "Test" div haben.

Hier ist ein funktionierendes Beispiel: http://jsfiddle.net/zYAcB/1/

0

Entfernen Sie einfach

box.removeClass("hide"); 

Der Aufruf von slideDown wird die div sichtbar machen. Derzeit, wenn Sie die "Verbergen" -Klasse entfernen, wird es angezeigt (da es von der CSS für diese Klasse versteckt ist) und der slideDown Aufruf dann nichts tut. Wenn Sie die Klasse nicht entfernen, wird sie angezeigt, wie Sie möchten.

Alternativ können Sie die Klasse entfernen, wenn die Animation abgeschlossen ist:

box.slideDown(function() { 
    box.removeClass("hide"); 
}); 
Verwandte Themen