Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何响应Javascript中的鼠标按钮点击?_Javascript_Jquery - Fatal编程技术网

如何响应Javascript中的鼠标按钮点击?

如何响应Javascript中的鼠标按钮点击?,javascript,jquery,Javascript,Jquery,我希望能够编写代码(单独)响应以下事件: 右击 左击 中键单击(可选-很好,但我可以不使用它) Javascript中是否有一种内置方式可以响应这些事件,或者我是否需要使用库(最好是jQuery)?怪癖模式有,它比浏览器差异更复杂 我是否需要使用库(最好是jQuery) JavaScript库不能做任何你自己做不到的事情;它们只是让做一些事情变得更容易。怪癖模式有,它比浏览器差异更复杂 我是否需要使用库(最好是jQuery) JavaScript库不能做任何你自己做不到的事情;它们只是让做一些事

我希望能够编写代码(单独)响应以下事件:

  • 右击
  • 左击
  • 中键单击(可选-很好,但我可以不使用它)
  • Javascript中是否有一种内置方式可以响应这些事件,或者我是否需要使用库(最好是jQuery)?

    怪癖模式有,它比浏览器差异更复杂

    我是否需要使用库(最好是jQuery)

    JavaScript库不能做任何你自己做不到的事情;它们只是让做一些事情变得更容易。

    怪癖模式有,它比浏览器差异更复杂

    我是否需要使用库(最好是jQuery)


    JavaScript库不能做任何你自己做不到的事情;它们只是让做一些事情变得更容易。

    以下是我使用的函数:

    var ieButtons = { "1": "left", "2": "right", "3": "leftright", "4": "middle" };
    
    function getMouseButton(evt) {
        if (typeof evt.which == "number") {
            // Non-IE case. Works in everything apart from Opera < 8
            return (evt.which < 2) ? "left" :
                ( (evt.which == 2) ? "middle" : "right" );
        } else {
            // IE case
            return ieButtons[evt.button] || "unknown";
        }
    }
    
    document.onmousedown = function(evt) {
        evt = evt || window.event;
        window.alert( getMouseButton(evt) );
    };
    
    var ieButtons={“1”:“left”、“2”:“right”、“3”:“leftright”、“4”:“middle”};
    函数getMouseButton(evt){
    if(evt的类型,其中==“编号”){
    //非IE案例。适用于除Opera以外的所有领域<8
    返回(evt.which<2)?“左”:
    ((evt.which==2)?“中间”:“右边”);
    }否则{
    //IE案例
    返回ieButtons[evt.button]| |“未知”;
    }
    }
    document.onmousedown=函数(evt){
    evt=evt | | window.event;
    window.alert(getMouseButton(evt));
    };
    
    简·沃尔特(Jan Wolter)关于鼠标事件的文章似乎不如他关于关键事件的文章那么有名,但同样出色,并将quirksmode抛到了九霄云外:


    刚刚看了jQuery代码,它看起来像是规范化了事件的
    ,该
    属性正确(1表示左,2表示中,3表示右),尽管没有IE报告多个同时按下按钮的良好功能。

    我使用的函数如下:

    var ieButtons = { "1": "left", "2": "right", "3": "leftright", "4": "middle" };
    
    function getMouseButton(evt) {
        if (typeof evt.which == "number") {
            // Non-IE case. Works in everything apart from Opera < 8
            return (evt.which < 2) ? "left" :
                ( (evt.which == 2) ? "middle" : "right" );
        } else {
            // IE case
            return ieButtons[evt.button] || "unknown";
        }
    }
    
    document.onmousedown = function(evt) {
        evt = evt || window.event;
        window.alert( getMouseButton(evt) );
    };
    
    var ieButtons={“1”:“left”、“2”:“right”、“3”:“leftright”、“4”:“middle”};
    函数getMouseButton(evt){
    if(evt的类型,其中==“编号”){
    //非IE案例。适用于除Opera以外的所有领域<8
    返回(evt.which<2)?“左”:
    ((evt.which==2)?“中间”:“右边”);
    }否则{
    //IE案例
    返回ieButtons[evt.button]| |“未知”;
    }
    }
    document.onmousedown=函数(evt){
    evt=evt | | window.event;
    window.alert(getMouseButton(evt));
    };
    
    简·沃尔特(Jan Wolter)关于鼠标事件的文章似乎不如他关于关键事件的文章那么有名,但同样出色,并将quirksmode抛到了九霄云外:

    刚刚查看了jQuery代码,它看起来似乎规范化了事件的
    ,该属性正确地反映了事件的属性(1表示左侧,2表示中间,3表示右侧),尽管没有IE报告多个同时按下按钮的良好功能。

    来自MSDN: 来自MSDN:

    来自MSDN:
    来自MSDN:

    呵呵。。。这就是为什么我喜欢jQuery@skyeagle-jQuery是一个典型的爱它还是恨它的场景。我喜欢它,因为它有着奇妙的选择器,而且如果使用“普通”JavaScript编写代码,我永远不需要担心跨浏览器的差异,就像在这个例子中一样。需要注意的是,在
    mousedown
    事件中所做的任何操作都不会阻止大多数浏览器上的上下文菜单(例如,右键单击)。如果提供了
    contextmenu
    事件,则必须显式挂接该事件。有关更多信息,请参阅该指南。例子:呵呵。。。这就是为什么我喜欢jQuery@skyeagle-jQuery是一个典型的爱它还是恨它的场景。我喜欢它,因为它有着奇妙的选择器,而且如果使用“普通”JavaScript编写代码,我永远不需要担心跨浏览器的差异,就像在这个例子中一样。需要注意的是,在
    mousedown
    事件中所做的任何操作都不会阻止大多数浏览器上的上下文菜单(例如,右键单击)。如果提供了
    contextmenu
    事件,则必须显式挂接该事件。有关更多信息,请参阅该指南。示例:这是特定于Microsoft的。前面的三个答案都指向了跨浏览器解决方案。你是对的,这是来自微软网站,我用“来自MSDN”这句话提到的。我想这可能对他有帮助(甚至有一点)。这是微软特有的。前面的三个答案都指向了跨浏览器解决方案。你是对的,这是来自微软网站,我用“来自MSDN”这句话提到的。我想也许这对他有帮助(甚至有一点)。