2012-04-09 17 views
0

Der Versuch, Linksklick vs Rechtsklick zu erkennen (ohne Verwendung von jQuery!), Und ich habe den folgenden CodeWas ist falsch mit meinem MouseUp-Code?

Javascript:

function cclick(e) { 
    if (e.button == 1) {alert("hgbdygwea");} 
    else { 
     alert(e.button); 
    } 
} 

HTML:

<a onmouseup="cclick()" ...> <img .../> </a> <!-- also tried cclick instead of cclick() --> 

mit dem Internet Explorer 9

+0

Was ist das Problem? Schlägt das MouseUp-Ereignis fehl? –

+0

es alert nicht, und wenn ich cclick() mit cclick im HTML ersetzen, sagt es .button ist undefined – Oztaco

+5

Try 'onmouseup =" cclick (event) "'. – nnnnnn

Antwort

3

Sie müssen das Ereignisobjekt auf Ihre Funktion zu übergeben:

onmouseup="cclick(event);" 
0

Es folgt ein weiterer Ansatz

function cclick() { 
    var e = window.event; 
    if (e.button == 1) {alert("hgbdygwea");} 
    else { 
     alert(e.button); 
    } 
} 

Und die Funktion aufrufen, wie unten, ohne die event vorbei.

<a onmouseup="cclick()" ...> <img .../> </a> 
+0

Dies funktioniert nur in Microsoft-Browsern. Andere Browser haben kein window.event – Eric

+1

Sicher, wie er erwähnt hat, muss er es auf "Internet Explorer 9" – prageeth

0

Ich denke, dass dieser Code für Sie arbeiten sollte. e.button ist nicht für alle Browser gültig (und ich habe den Code aufgeräumt).

function cclick(e) { 
    "use strict"; 
    e || window.event; 
    if (e.which) { 
     alert((e.which === 1) ? "hgbdygwea" : e.which); 
    } else { 
     alert((e.button === 1) ? "hgbdygwea" : e.button); 
    } 
} 

<a onmouseup="cclick(event)" ...> <img .../> </a> <!-- also tried cclick instead of cclick() --> 
+0

ausführen welcher Browser ist e.which für? Ich habe gehört, dass es für Netscape war, also habe ich mich nicht darum gekümmert, seit es nicht mehr populär ist? – Oztaco