jQuery: Click Event Problem [gelöst]
am 13.07.2008 - 21:13 Uhr in
Folgender Code funktioniert bis auf den 2. Click Event.
if (Drupal.jsEnabled) {
$(document).ready(function(){
$("#togglegrippy.hide").click(function () {
$(this).removeClass("hide"),
$(this).addClass("show"),
$("#sidebar-right").hide("slow");
});
$("#togglegrippy.show").click(function () {
$(this).removeClass("show"),
$(this).addClass("hide"),
$("#sidebar-right").show("slow");
});
});
}Beim 1. KLick wird der div ausgeblendet und die Klassen werden geaendert.
Beil 2. Klick passiert nichts. Firebug oder die JS Konsole melden nichts.
Kann mir Jemand sagen was ich falsche mache?
- Anmelden oder Registrieren um Kommentare zu schreiben

Ich sehe da jetzt auch
am 13.07.2008 - 21:36 Uhr
Ich sehe da jetzt auch keinerlei Problem, die Frage warum nicht .toggle verwenden: Da würde folgendes eigentlich das selbe machen
if (Drupal.jsEnabled) {$(document).ready(function(){
$("#togglegrippy:hidden").click(function () {
$(this).toggle();
$("#sidebar-right").toggle("slow");
});
$("#togglegrippy:visible").click(function () {
$(this).toggle();
$("#sidebar-right").toggle("slow");
});
});
}
Was mir gerade auffällt du hast in den Funktionen mit $(this) vorne kein ; sondern nur ein ,
Aber hoffentlich war das nicht die Ursache
-------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
mit toggle funktioniert es
am 13.07.2008 - 22:02 Uhr
du hast in den Funktionen mit $(this) vorne kein ; sondern nur ein
Kapier nicht was Du damit meinst.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
brauchen query CSS background images andere Pfade?
am 13.07.2008 - 22:12 Uhr
Die Pfade der background images mit jquery muessen offensichtlich andere sein als wenn die background images normal im CSS Code definiert werden.
Denn das Folgende funktioniert nicht.
if (Drupal.jsEnabled) {$(document).ready(function(){
$("#togglegrippy.hide").click(function () {
$(this).css({background:"url(images/tab2-b.gif) no-repeat 8px 150px"}),
$(this).removeClass("hide"),
$(this).addClass("show"),
$("#sidebar-right").toggle("slow");
});
$("#togglegrippy.show").click(function () {
$(this).css({background:"url(images/tab2.gif) no-repeat 8px 150px"}),
$(this).removeClass("show"),
$(this).addClass("hide"),
$("#sidebar-right").toggle("slow");
});
});
}
Das die Bilder nicht gefunden werden bemeckert auch der Drupal Log.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
2. Click Event ignoriert außer toggle alles Andere. Brauche Tip.
am 13.07.2008 - 23:07 Uhr
Im 2. Click Event werden ausser dem toggle alle anderen Attribut-Anweisungen nicht ausgefuehrt:
if (Drupal.jsEnabled) {$(document).ready(function(){
$("#togglegrippy.hide").click(function () {
$(this).removeClass("hide"),
$(this).addClass("show"),
$("#sidebar-right").toggle("slow");
//$("#togglegrippy.show").css({background:"url(/sites/all/themes/d6garland/images/tab2-b.gif) no-repeat 8px 150px"});
});
$("#togglegrippy.show").click(function () {
$("#sidebar-right").toggle("slow"),
$(this).removeClass("show"),
$(this).addClass("hide");
//$("#togglegrippy.hide").css({background:"url(/sites/all/themes/d6garland/images/tab2.gif) no-repeat 8px 150px"});
});
});
}
An der Reihenfolge der einzelnen Anweisungen im 2. Click Event kann es nicht liegen. Verschiedene Kombinationen der Reihenfolge der Anweisungen habe ich probiert. $(this).removeClass("show") und $(this).addClass("hide") werden nicht ausgefuehrt. Ein $("#togglegrippy").removeClass("show") und $("#togglegrippy").addClass("hide") bringt auch nichts.
Sicher mache ich etwas falsch. Hat Jemand einen Tipp oder weiss Rat?
PS
Das Wechseln des background images im 1. Click Event funktioniert.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
2. Click Event ignoriert außer toggle alles Andere
am 14.07.2008 - 10:15 Uhr
Nochmal nachgefragt.
Hat Jemand eine Idee? Was mach ich mit dem 2. Click Event falsch?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Die Zeilen die nicht
am 14.07.2008 - 10:25 Uhr
Die Zeilen die nicht funktionieren haben kein Semikolon am Ende // Ist das Absicht, Zufall?
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
dereine schrieb Die Zeilen
am 14.07.2008 - 10:54 Uhr
Die Zeilen die nicht funktionieren haben kein Semikolon am Ende // Ist das Absicht, Zufall?
Das mit dem Komma am Ende der Zeilen: so habe ich http://docs.jquery.com verstanden.
Aber, auch mit Semikolon am Zeilenende funktionieren die betreffenden Zeilen nicht.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
eventuell ein Problem von Drupal's JQuery Version?
am 14.07.2008 - 11:45 Uhr
Ich kann meinen JQuery Code umbauen wie ich will. Ausser Toggle wird beim 2. Click Event nichts ausgefuehrt.
So sieht Jetzt der Code aus:
if (Drupal.jsEnabled) {$(document).ready(function(){
$(".myhide").click(function () {
$(this).removeClass("myhide").addClass("myshow");
$("#sidebar-right").toggle('slow');
return false;
});
$(".myshow").click(function () {
$(this).removeClass("myshow").addClass("myhide");
$("#sidebar-right").toggle('slow');
return false;
});
});
}
Ist das eventuell ein Problem von Drupal's JQuery Version?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
jQuery: removeClass/addClass vs toggleClass
am 14.07.2008 - 12:46 Uhr
Jetzt funktioniert das was ich erreichen wollte. Und zwar so:
if (Drupal.jsEnabled) {$(document).ready(function(){
$(".myhide").click(function () {
$("#squeeze").toggleClass("small");
$(this).toggleClass("myshow");
$("#sidebar-right").toggle('fast');
return false;
});
$(".myshow").click(function () {
$("#squeeze").toggleClass("small");
$(this).toggleClass("myshow");
$("#sidebar-right").toggle('fast');
return false;
});
});
}
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Live Example jQuery toggleClass
am 14.07.2008 - 12:57 Uhr
Habe ich fast vergessen. Wen es interessiert. So funktioniert es: d6.quiptime.com
Die rechte Sidebar.
PS
Meine erste jQuery Funktionalität mit Drupal. :-)
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.