[TYPO3-german] typo3 soll bei # nicht nach oben springen

Stephan Schuler Stephan.Schuler at netlogix.de
Fri Mar 4 21:10:26 CET 2011


Hallo zusammen.


Standardmäßig wird bei einem Klick auf einen Link zum Linkziel gesprungen. Die Raute (#) ist die Anweisung eines Ankers innerhalb einer Seite.
Als Beispiel will ich mal unverfänglich Wikipedia nennen:
http://de.wikipedia.org/wiki/TYPO3#Einzelnachweise
Es geht nicht um den Inhalt dieser Seite sondern um die Tatsache, dass "#Einzelnachweise" bedeutet, dass der Browser dort hin springt, wo im HTML-Quellcode ein HTML-Tag mit der ID "Einzelnachweise" steht.

Der Klick auf einen Link stellt ein Event dar, das Klickevent, "click", "onclick" oder wie auch immer das im entsprechenden Frameworkkontext genannt wird.

Der Sprung auf das HREF-Ziel ist das erste Klickevent.


Dass sich die Sortierung in "Quicksand" ändert wir dadurch ausgelöst, dass auf dem Link ein zweites Klickevent liegt.
Sinngemäß:
jQuery('.quicksandbutton').click(function() { alert('foo'); });

Dadurch liegen zwei Klickevents auf dem gleichen Button: Das von Quicksand und das des HREF-Tags.
Diese werden in umgekehrter Reihenfolge abgearbeitet: Zuerst Quicksand, dann HREF.


Nun muss verhinder werden, dass nach Ausführung des Quicksand-Klickevents noch das HREF-Klickevent ausgeführt wird.
Das tut man klassischwrweise dadurch, dass die ausgeführte Klickfuntion FALSE zurückgibt:
jQuery('.quicksandbutton').click(function() { alert('foo'); return false; });
Daduch werden nachfolgende Events nicht mehr ausgelöst.


Ein ähnliches Beispiel (vielleicht etwas einleuchtender warum das so sein muss) ist ein Submitevent eines Formulars.
jQuery('form').submit(function(e, form) {
  if(validateForm()) return true;
  else return false;
});
So wird die Formularübertragung nur dann durchgeführt, wenn die Validierung des Formularinhalts erfolgreich war.


In dem Zusammenhang kann man sich auch "stopPropagation" ansehen. Muss man aber nicht, das ist nämlich erst der nächste Schritt.
http://api.jquery.com/event.stopPropagation/


Ein anständig programmiertes jQuery-Modul macht das aber von selbst. Wenn das nicht passiert würde ich den meisten Fällen davon ausgehen, dass sich unterschiedliche Javascript-Module (Versionen von jQuery, Prototype, Mootools, oder aber einfach fehlerhafter anderer Javascriptcode der vorher ausgeführt wird) in die Quere kommen.


Gruß,


Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Website: media.netlogix.de


--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Andernacher Straße 53 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



________________________________________
Von: typo3-german-bounces at lists.typo3.org [typo3-german-bounces at lists.typo3.org]" im Auftrag von "Wulf Schmoll [wulf at captain-pixel.de]
Gesendet: Freitag, 4. März 2011 16:32
Bis: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] typo3 soll bei # nicht nach oben springen

nochmal hallo,

es lag am lightbox-js...
hätte ich natürlich auch früher drauf kommen können. aber danke für die
anstoss.

Wulf
> Am 3/4/11 12:46 PM, schrieb Wulf Schmoll:
>> hallo liste,
>>
>> ich möchte gerne das Quicksand Plugin in einer Typo3-Installation
>> benutzen (http://razorjack.net/quicksand/). Nur leider funktioniert
>> das sortieren nicht, da dass script immer eine "#" an die aktuelle
>> url hängt und Typo3 dadurch an den oberen Rand hüpft (was ja auch
>> normal ist) und das sortier-script nicht greift.
>>
>> Gibt es die Möglichkeit, dass Typo3 die # in der url ignoriert, bzw.
>> man per TS sagt, dass er nur bei beispielsweise #top hochhüpft?
>>
> Ich galueb zu wissen, dass das der Browser macht. Um das zu
> verhindern, müsste man das Standardverhalten abschalten. Das geht
> beispielsweise mit jQuery.
>
> Rainer
>> MfG Wulf
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>>
>
>

_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list