jquery slideToggle

mgraf

Erfahrenes Mitglied
Hallo,
ich dachte eigentlich das wäre einfach, aber ich sitze sicher scho 30min an diesem einzelnen Toogle.
Mein Problem ist er toggled zwar runter, aber dann sofort wieder rauf - was ja nicht so super ist...

Der Höhepunkt wäre auch, wenn er noch eine Klasse switchen würde, aber das trau ich mich grad gar nicht ;-)

Code:
// One way to initialize plugin code
$(document).ready(function() {
    $(".toggle").click(function() {
        $(this).next().slideToggle(600);
    });
});


HTML:
<section class="box" id="tester">
  <h2 class="toggle">Box</h2>
  <article class="vcard">
    <div>tester</div>
  </article>
</section>

Kurz erklärt, bei klick auf h2.toggle soll er <article> Toggln und die Klasse von h2.toggle -> h2.down ändern

Danke für Eure Hilfe

lg
michi
 
Ich glaube JQuery hat das eine oder andere Problem mit unbekannten non w3c konformen tags.

Ersetze mal <section> durch <span>

und bezieh dich oben auf das h2.toggle statt nur auf .toogle
 
Dein Code funktioniert bei mir ohne Problem (es wird nicht sofort wieder hoch geslided).

Die Klassen kannst du so togglen (steht auch innerhalb der "click"-Funktion).

Javascript:
$(this).toggleClass("toggle down");

Falls die Klassenänderung sich auch auf den gebundenen Klick-Handler auswirken soll, musst du ihn via "live" binden.

Javascript:
$(document).ready(function(){
	$(".toggle").live("click", function() {
		$(this).toggleClass("toggle down");
		$(this).next().slideToggle(600);
	});
});

Edit:
Ich glaube JQuery hat das eine oder andere Problem mit unbekannten non w3c konformen tags.

Man kann mit jQuery jedes XML parsen.

Javascript:
var xml = '<foo><bar lol="cat">Gib mich aus!</bar><bar lol="ig"></bar></foo>';
alert($(xml).find("bar[lol=cat]").text());
 
Zuletzt bearbeitet:
Ja das dachte ich mir auch
nur wieso funktioniert sein code im ie nicht?
Falls das Tag aber umbenannt wird geht es.

Wy that?
 
Weil der IE es eben nicht kennt. Aber das hat mit jQuery nichts zu tun. Und ich mache dem IE auch keinen Vorwurf (was man sonst gerne machen kann), denn HTML 5 ist noch nicht verabschiedet und das kann auch noch dauern.
 
CPoly eh hab ich das richtig verstanden das du ihm eine lösung gibst die nicht im ie geht?

mgrad hast du dich auch auf das h2.toogle bezogen?
 
CPoly eh hab ich das richtig verstanden das du ihm eine lösung gibst die nicht im ie geht?

Wir sind hier im JavaScript Forum. Was er mit seinem Markup macht, spielt in dem Fall keine Rolle.



Die Lösung ist ganz einfach: Du hast zwei mal "js/script.js?v=1" eingebunden. Deshalb auch der doppelte Aufruf von "slideToggle".
 
Zurück