从键盘右箭头键盘调用右键单击鼠标

时间:2012-11-21 11:16:24

标签: jquery

$("#element").bind("keydown", function(e) {
    if (e.which === 39) { //if keyboard right arrow
        $("#element").trigger({
            type: 'mousedown',
            button: 2
        }).trigger({
            type: 'mouseup'
        });

        $("#element").bind('mousedown', function(ev) {
            if (ev.which === 2) {
                //call method - I need  pageX and pageY coordinates
                //methods.show.apply($this, [ev.pageX, ev.pageY, options.showAnimation]);
                alert("called");
            }
        });

    }
});​

我想做的是:  按键盘右箭头键,然后模拟鼠标右键单击触发器,现在我需要的是一个处理程序,所以我可以启动我需要X&的上下文菜单。 Y坐标。

1 个答案:

答案 0 :(得分:1)

以下代码将记住#element数据中的鼠标光标位置。然后它将使用keydown处理程序中存储的坐标:

$(document).on({
    keydown: function(e) {
        if (e.which === 39) {
            var $el = $("#element"),
                pos = $el.data("pos");

            $el.trigger({
                type: 'mousedown',
                which: 3,
                pageX: pos[0] || 0,
                pageY: pos[1] || 0
            });
        }
    },
    mousemove: function(e) {
        $("#element").data("pos", [e.pageX, e.pageY]);
    }
});

$("#element").on({
    mousedown: function(e) {
        if (e.which === 3) {
            alert(e.pageX + " / " + e.pageY);
        }
    }
});​

DEMO: http://jsfiddle.net/x4Bmw/2/