Ich verwende das onclick
Ereignis eines Hash-Links, um <div>
ein Popup zu öffnen . Aber in der Mitte Klick nicht das auslösen onclick
Ereignis aber nur nimmt den href
Attributwert des Link und lädt die URL in einer neuen Seite. Wie kann ich mit dem mittleren Klick das <div>
als Popup öffnen ?
javascript
jquery
Sadesh Kumar N.
quelle
quelle
Antworten:
BEARBEITEN
Diese Antwort ist veraltet und funktioniert in Chrome nicht. Sie werden höchstwahrscheinlich das Auxlink-Ereignis verwenden , aber bitte beziehen Sie sich auf andere Antworten unten.
/BEARBEITEN
Die Antwort von betteln ist richtig, aber es hört sich so an, als ob Sie die Standardaktion des mittleren Klicks verhindern möchten. In diesem Fall schließen Sie Folgendes ein
PreventDefault () stoppt die Standardaktion des Ereignisses.
quelle
.live
veraltet und zugunsten von.on
2
?Damit die mittlere Klick- / Mausrad-Taste erkannt wird, müssen Sie das Ereignis verwenden
auxclick
. Z.B:Dann in Ihrer Skriptdatei
Wenn Sie dies über JavaScript tun möchten (ohne das HTML-Attribut zu verwenden
onauxclick
), gelangen SieaddEventListener
zum Element:Schauen Sie sich hier die MDN-Seite über die
auxclick
Veranstaltung an .quelle
if(event.button==1)
Klausel erfasst wird . Dies ist die einzige funktionierende Antwort.auxclick
Ereignis verwenden als auch den Wert von überprüfen müssene.button == 1
. Ich habe die Antwort bearbeitet.Sie können verwenden
event.button
um zu identifizieren, welche Maustaste geklickt wurde.
Gibt einen ganzzahligen Wert zurück, der die Schaltfläche angibt, deren Status geändert wurde.
Beachten Sie, dass diese Konvention in Internet Explorer nicht befolgt wird: Weitere Informationen finden Sie unter QuirksMode.
Die Reihenfolge der Tasten kann je nach Konfiguration des Zeigegeräts unterschiedlich sein.
Lesen Sie auch
Welche Maustaste wurde angeklickt?
quelle
event.which
da es für alle Browser in der jQuery-Quellzeile standardisiert ist - Zeile 2756 -if ( !event.which && event.button ) event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
MouseEvent.which
in keiner SpezifikationMouseEvent.button
definiert , sondern in DOM L2-Ereignissen.event.which
aber näher darauf eingehen sollen, dass diesMouseEvent.which
nicht Teil der offiziellen Spezifikation ist.Normalerweise hasse ich es, wenn Leute Alternativen anstelle von Lösungen anbieten, aber da bereits Lösungen bereitgestellt wurden, werde ich meine eigene Regel brechen.
Websites, auf denen die Middle-Click-Funktion überschrieben wird, nerven mich sehr, sehr. Normalerweise klicke ich mit der mittleren Maustaste, weil ich den neuen Inhalt in einem neuen Tab öffnen möchte, während ich eine ungehinderte Ansicht des aktuellen Inhalts habe. Jedes Mal, wenn Sie die Middle-Click-Funktion in Ruhe lassen und den relevanten Inhalt über das HREF-Attribut Ihres angeklickten Elements verfügbar machen können, sind Sie der festen Überzeugung, dass Sie dies tun sollten.
quelle
jQuery stellt ein
.which
Attribut für das Ereignis bereit , das die Klickschaltflächen-ID von links nach rechts als 1, 2, 3 angibt. In diesem Fall möchten Sie 2.Verwendung:
Die Antwort von Adamantium wird auch funktionieren, aber Sie müssen auf IE achten, wie er bemerkt:
Denken Sie auch daran, dass das
.button
Attribut 0-indiziert und nicht 1-indiziert ist.which
.quelle
Diese Frage ist etwas alt, aber ich habe eine Lösung gefunden:
Chrome löst kein "Klick" -Ereignis für das Mausrad aus
Arbeiten Sie in FF und Chrome
quelle
e.preventDefault()
es aufgerufen wird.Die geeignete Methode ist die Verwendung
.on
, wie.live
wurde verworfen und dann entfernt von jQuery:Oder wenn Sie das Gefühl haben möchten, "live" zu sein und
#foo
sich beim Dokumentstart nicht auf Ihrer Seite befinden:ursprüngliche Antwort
quelle
click
funktioniert nicht für die mittlere Maustaste in Browsern wie Firefox und Chrome.Ich weiß, dass ich zu spät zur Party komme, aber für diejenigen, die immer noch Probleme mit der Handhabung des mittleren Klicks haben, prüfen Sie, ob Sie die Veranstaltung delegieren. Im Falle einer Delegation wird die
click
Veranstaltung nicht ausgelöst. Vergleichen Sie:Dies funktioniert für mittlere Klicks:
Dies funktioniert nicht bei mittleren Klicks:
Wenn Sie den mittleren Klick mithilfe der Ereignisdelegierung weiterhin verfolgen müssen, können Sie , wie im entsprechenden jQuery-Ticket angegeben , nur
mousedown
odermouseup
stattdessen verwenden. Wie so:Dies funktioniert für delegierte mittlere Klicks:
Sehen Sie es hier online .
quelle
click
nicht für mittlere Klicks wie in Ihrem ersten Beispiel.