2014-10-21 89 views
1

我在我的畫布上有一個事件監聽器,即時嘗試禁用右鍵菜單,因爲我想用它來滾動畫布,但我的preventdefault()似乎並沒有阻止菜單出現。e.preventDefault()不禁用菜單

這是我有:http://jsfiddle.net/zd2042xv/

,代碼:

function handle(e){ 
    e.preventDefault(); //disable menu 
    output.innerHTML = 'Button Number: '+e.button; 
} 

canvas.addEventListener('mousedown',handle,false); 

有我誤解了它是如何工作的?

回答

2

將「oncontextmenu =」返回false「」添加到畫布上也會禁用右鍵單擊上下文菜單。

<canvas oncontextmenu="return false" id="canvas" width="600" height="600" style="border:1px solid black;"></canvas> 

而且你仍然可以讀出鼠標點擊。

編輯: 的jsfiddle:http://jsfiddle.net/ovrrbhnr/1/

+0

當然,添加事件偵聽器的'contextmenu'事件,你'的preventDefault()'的工作方式相同。 – GregL 2014-10-21 22:21:33

+0

因此,e.preventDefault()不能在mousedown上右鍵單擊? – Sir 2014-10-21 22:29:33

+0

e.preventDefault();將在mousedown和mouseup上工作並禁用默認事件。但它仍然允許上下文菜單。 – Arndroid 2014-10-21 22:39:28