2012-04-07 9 views
1

Ich habe etwa 40 Links, die alle in jQuery behandelt werden, aber wenn sie angeklickt werden, verschiebt sie die Seitenposition nach oben. Gibt es einen besseren Weg, dies zu verhindern, ohne jedem einen Event-Handler zu geben und dann e.preventDefault() zu tun? Selbst wenn ich es einfach in die Funktion aufnehmen könnte, die ausgeführt wird, ohne return false zu tun, als ob das nie für mich funktioniert.jquery: Wie stoppe ich HTML-Anker, die das Dokument bewegen?

+0

Führt ihr Attribut 'href' auf' # '? – alex

+0

yh sie sind alle mit jquery behandelt, so dass es nur Links zu # –

+0

Links sollten nicht auf '#' zeigen. Sie sollten auf einen gültigen URI zeigen oder überhaupt keine Links sein. – alex

Antwort

4

Anstatt e.preventDefault einzeln anzuwenden, können Sie sie auf alle in einer Funktion anwenden, indem Sie die leistungsstarken Matching-Funktionen von jQuery verwenden.

Dieser Code stimmt mit allen <a> Tags überein, deren href Attribut auf # gesetzt ist.

$("a[href='#']").click(function(e) { 
    e.preventDefault(); 
}); 
+1

genious D: ddddd –

Verwandte Themen