Wie verhindert man den Sprung auf einen Anker klicken?

8

Ich verwende e.preventDefault(); , um das Standard-Ankerverhalten zu deaktivieren.

Gibt es eine Möglichkeit, beim Klick nur eine Sprungaktion auf ein Ziel zu verhindern?

Ich habe es versucht:

%Vor%

Aber es funktioniert nicht: Ссылка .

    
A. Z. 06.01.2013, 19:41
quelle

5 Antworten

23
%Vor%

Sie müssen auch das Ereignisargument in der Funktion angeben. Indem Sie es als e oder event benennen, können Sie es manipulieren.

    
Muhammad Talha Akbar 06.01.2013 19:42
quelle
8

Dies ist die einzige Lösung, die ich entwickeln konnte und die in allen Desktop- und mobilen Browsern mit verschiedenen Client-UI-Bibliotheken und -Frameworks konsistent funktioniert. Indem wir die Fensterkoordinaten vor dem Scrollen erhalten, können wir die aktuelle Scroll-Position wiederherstellen und beibehalten.

%Vor%     
TaeKwonJoe 31.12.2015 09:18
quelle
4

Um only den "Sprung" zu verhindern, müssen Sie eine andere ID für das Zielelement verwenden als im Anker angegeben.

z.B. für einen Link zu einem neuen Tab benutzen,

%Vor%

und für das Zielelement die ID

maskieren %Vor%

Dann fügen Sie in Ihrem Skript die Maske dem echten Hash hinzu und verwenden Sie sie, um das Element zu erhalten.

%Vor%

Dadurch werden die Änderungen des Hash-Standorts im Browserverlauf beibehalten, die durch die Schaltflächen zum Zurück- / Vorrücken gesteuert und beim Laden der Seite mit dem hashchange -Ereignis erkannt werden, wenn der Benutzer die Seite mit angegebenem Hash eingibt.

    
jumois 07.08.2014 08:41
quelle
3

Sie sollten ein onclick-Ereignis anhängen und als Ergebnis return false; angeben. Die return false; -Anweisung bewirkt, dass das Standard-Klickverhalten (Sprung) nicht funktioniert. Weitere Informationen finden Sie hier: So deaktivieren Sie den Anker " Springen "beim Laden einer Seite?

    
Sergei Smirnov 30.07.2013 15:04
quelle
2

Sie müssen das Ereignis für die Funktion übergeben.

%Vor%     
AgnosticDev 06.01.2013 19:43
quelle

Tags und Links