2016-06-02 11 views
0

Ich habe auf Anker Tag in htm.wenn ich klicke Maus mittleren Knopf auf Anker Tag dann neue Registerkarte geöffnet ist. Aber ich möchte aufhören zu arbeiten. Ich habe viele Tricks in Javascript versucht, aber es funktioniert nicht. Kann jemand eine Lösung dafür haben?Stoppt das Öffnen einer neuen Registerkarte auf klicken mittlere Maustaste

<a class="tag" href="www.google.com>google</a> 

Ich will nicht durch Klicken mit der Maus mittlerer Taste über Anker-Tag mit Klasse (Tag) einen neuen Tab öffnen ... verhindern mittlere Taste der Maus neuen Tab auf Anker Registerkarte mit einer perticular ID zu öffnen .

+2

, was Sie bisher versucht haben? –

+0

Clicker

RohanArihant

+0

'mouseup' könnte zu spät sein –

Antwort

1

Ich stimme @Matt Lishman in den Kommentaren: nicht.

Aber man eine Lösung zu geben:

Ihr Code fast richtig ist. Nur (wie @GoTo sagt), mouseup ist zu spät. Wenn Sie nach click-Ereignissen suchen, können Sie die Eigenschaft which des Ereignisobjekts überprüfen. Die which ist 2, wenn Sie mit dem Scrollrad klicken.

Also, wenn which === 2, preventDefault

https://jsfiddle.net/k3o5pt6c/

+0

Ich stimme dir zu, aber aus einem bestimmten Grund möchte ich es stoppen, um eine neue Registerkarte zu öffnen .. kann jemand eine Lösung haben Ich habe ein funktionierendes Beispiel js.do/rohanarihant/mousemiddle1, aber ich habe aufgehört zu arbeiten von allen Anker-Tag, aber ich will um nur einen davon zu stoppen, ist es id (my) - – RohanArihant

1

fand ich Lösung wie pro meine Anforderung

<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script> 
<script> 
$(function(){ 
    $(document).on("click", function(e){ 
    if($(e.target).is("#google") && e.button===1) 
     e.preventDefault() 
    }) 
}) 
</script> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
</head> 
<body> 
<a href="http://google.com" id="google">Google</a><br> <a href="http://bing.com" id="bing">Bing</a> 
</body> 
</html> 

fiddle link

Verwandte Themen