Javascript 触发右键单击

Javascript 触发右键单击,javascript,jquery,contextmenu,Javascript,Jquery,Contextmenu,我正在尝试将上下文菜单后期绑定到元素,使用。因此,在第一次右键单击这些元素时,我想: 截取某个“UntextMenued”类上的实时事件的右键单击 确定数据('events')。上下文菜单是否存在 如果没有,请附加上下文菜单(并更改类以避免重新抛出此实时进程) 重新抛出右键单击事件以显示右键单击 最后一项我有点麻烦。jQuery允许.click()或.trigger('click'),模拟左键单击,但似乎没有办法通过触发器触发右键单击事件 还是有?类似于此,但我不确定您是否指的是jQuery U

我正在尝试将上下文菜单后期绑定到元素,使用。因此,在第一次右键单击这些元素时,我想:

  • 截取某个“UntextMenued”类上的实时事件的右键单击
  • 确定
    数据('events')。上下文菜单
    是否存在
  • 如果没有,请附加上下文菜单(并更改类以避免重新抛出此实时进程)
  • 重新抛出右键单击事件以显示右键单击
  • 最后一项我有点麻烦。jQuery允许
    .click()
    .trigger('click')
    ,模拟左键单击,但似乎没有办法通过
    触发器触发右键单击事件


    还是有?

    类似于此,但我不确定您是否指的是jQuery UI数据,但是

    $('#element').mousedown(function(event) 
    {
        if(event.which == 3)
        {
            if(typeof($(this).data('events')) === 'undefined')
            {
                $(this).data('events', { somedata: 'hello' });
            }
            else
            {
                // "re-throw" right click context menu
            }
        }
    });
    
    你可以通过

    $('#element').trigger({
        type: 'mousedown',
        which: 3
    });
    

    有一种新的方法可以做到这一点:

    $('#element').triggerHandler('contextmenu');
    

    .

    很抱歉,我想触发一个右键单击事件,而不是将事件附加到它。好的,这将使我走上正确的轨道。为了完成回答,引用的插件实际上需要一个mousedown,然后是mouseup。。。所以像Niclas所说的触发之后必须有一个触发器(“mouseup”)。由于它是“button”属性,而不是插件读取的“which”属性,所以我的问题的实际答案是$(“#element”).trigger('mousedown',{button:2})。trigger('mouseup')。谢谢Niclas.Hi Subtenant,一百万谢谢,我想要的是同样的功能,你的回答真的帮了我很大的忙,但我认为你有一个错误,我不得不把它改成:$('element').trigger({type:'mousedown',button:2}.trigger({type:'mouseup');我的情况也是一样,用“mouseup”代替“mousedown”。这对我不起作用。我还尝试了Ben Lesh提供的解决方案,但没有成功?对我来说,
    'contextMenu'
    不起作用。相反,
    'contextmenu'
    工作正常。谢谢,这是个打字错误。