2013-06-18 43 views
3

所以我感覺有點困惑。我正在開發一個HTML5遊戲項目,並且希望用戶能夠通過使用左鍵單擊函數爲圖像添加值,然後通過右鍵單擊而不是顯示菜單來刪除值。我已閱讀大約3種方法來做到這一點:區分左右鼠標點擊的方法有哪些?

我一直在分配事件監聽器到一個div,出於某種原因,我不能讓if (event.button === 2)工作,即使我讀了這是鼠標右鍵。然而div.oncontextmenu = doRightClick;工作得很好。然後有event.which,我似乎還不明白。它看起來像一個全球性的event.button,但包含鍵盤鍵?

我的問題是,有沒有理由使用event.buttonevent.which而不是.oncontextmenu?彼此之間有什麼優勢?或任何瀏覽器問題?我讀了event.button對IE8有不同的值,在這種情況下有點跛腳。任何幫助非常感謝,事先感謝。

+2

'click'事件(通常)僅適用於鼠標左鍵和(有時)中間按鈕。但'mousedown'事件適用於所有按鈕。 – nnnnnn

+0

啊,你是對的,mousedown使event.button === 2現在工作。但加入返回false;在功能的結尾會不會停止默認的右鍵菜單彈出來?感謝這 –

回答

1

contextmenu事件並非真正的右鍵單擊;它用於上下文菜單,但是它們被調用(上下文菜單鍵盤按鍵,用一鍵式鼠標進行特殊點擊等)。您可能仍想捕獲這些contextmenu事件,以便您可以取消它們,但可以使用mousedownmouseup專門處理右鍵單擊。

+0

阿當,不知道有一個上下文菜單的鍵盤鍵!現在開始有意義,所以你說保持.oncontextmenu = function(){return false; }然後讓mousedown偵聽器通過event.button === 2處理右鍵點擊?感謝您的所有幫助btw –

+0

是的,這就是我要說的。 – Jacob

+0

歡呼聲,再次感謝您的幫助 –

相關問題