无法捕获右键单击事件?

时间:2015-07-05 06:49:10

标签: javascript

当使用“右键”触发点击事件时,“select”功能中的“else if”in不会触发它。最令人讨厌的是它被我之前制作的任何其他样本页面捕获。请帮我调试这个问题。

document.addEventListener('click' ,this.select.bind(this) ,false);

Filesystem.prototype.select = function(event){
    if(event.button === 0){
         // Code that's working fine
    }
    else if(event.button === 2){
        alert("hello");
    }
}

1 个答案:

答案 0 :(得分:0)

基本问题是您无法使用点击事件拦截右键单击。相反,请使用mousedown或contextmenu。

请参阅此JSFiddle:https://jsfiddle.net/0rd5dc3v/5/

var select = function(event){
    console.log(event);
    if(event.button === 0){
         // Code that's working fine
    }
    else if(event.button === 2){
        alert("hello");
    }
}

document.getElementsByClassName('click')[0].addEventListener('click' ,select,false);

document.getElementsByClassName('mousedown')[0].addEventListener('mousedown' ,select,false);

未捕获红色方块的右键单击(侦听点击事件),但会捕获蓝色方块(侦听mousedown事件)。