2012-04-09 235 views
0

嘗試檢測左擊VS右鍵點擊(不使用jQuery的!),我有以下代碼我的mouseup代碼有什麼問題?

的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() --> 

使用Internet Explorer 9

+0

什麼問題?它檢測到mouseup事件失敗嗎? – 2012-04-09 06:51:43

+0

它不警告,當我用HTML中的cclick替換cclick()時,它說.button是未定義的 – Oztaco 2012-04-09 06:52:41

+5

嘗試'onmouseup =「cclick(event)」'。 – nnnnnn 2012-04-09 06:53:31

回答

3

您需要將事件對象傳遞給你的函數:

onmouseup="cclick(event);" 
0

以下是另一種方法

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

並調用下面的函數,而沒有經過event

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

這隻適用於Microsoft瀏覽器。其他瀏覽器沒有window.event – Eric 2012-04-09 07:16:28

+1

當然,正如他所說的,他需要在'Internet Explorer 9' – prageeth 2012-04-09 07:38:18

0

我認爲這段代碼應該適合你。 e.button不適用於所有瀏覽器(並且我清理了代碼)。

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

上運行它,哪些瀏覽器是e.which的?我聽說它是​​netscape,所以我不打擾它,因爲它不再流行了? – Oztaco 2012-04-09 08:01:47