如何使左键单击表现为右键单击?

时间:2013-06-25 07:04:59

标签: javascript

我想知道如何在javascript中右键单击左键单击行为。我希望通过左键单击显示上下文菜单。

问候。

2 个答案:

答案 0 :(得分:2)

  1. 向文档添加点击事件侦听器
  2. 保存点击的dom-tree中最低的元素
  3. 使用与点击事件相同的x和y坐标向该元素发起'rightclick'(或其任何调用)事件。
  4. 事件监听器:

    document.addEventListener('click', function(e) {
        console.log(e);
    });
    

    这为您提供了大量信息。您将获得鼠标点击的x / y坐标,更重要的是,您将获得收到点击的元素:e.originalTarget(请注意事件因浏览器而异)。

    保存元素:

    document.addEventListener('click', function(e) {
        var originalElement = e.srcElement || e.originalTarget;
    });
    

    然后右键点击该元素:

    document.addEventListener('click', function(e) {
        var originalElement = e.srcElement || e.originalTarget;
        if (document.createEvent) {
            var ev = document.createEvent('HTMLEvents');
            ev.initEvent('contextmenu', true, false);
            originalElement .dispatchEvent(ev);
        } else { // Internet Explorer
            originalElement .fireEvent('oncontextmenu');
        }
    });
    

    编辑:

    它似乎还不起作用,所以请考虑使用此方法触发纯js中的右键单击:How to generate a right-click event in all browsers

答案 1 :(得分:0)

试试这个

    $(document).contextmenu(function (event) {
        $(event.target).click();
        event.preventDefault();
    })