触发右键单击

glm*_*ndr 15 javascript jquery contextmenu

我正在尝试使用ContextMenu插件将上下文菜单延迟绑定到元素.所以在第一次右击这些元素时,我想:

  1. 拦截右键点击某个"无文字"课程的直播活动,
  2. 确定是否data('events').contextmenu存在,
  3. 如果没有,请附上上下文菜单(并更改类以避免重新抛出此实时进程),
  4. 重新抛出右键单击事件以显示右键单击.

我遇到了最后一项问题.jQuery允许.click()或者.trigger('click')模拟左键单击,但似乎没有办法通过触发右键单击事件trigger.

还是有吗?

Nic*_*lin 29

你可以通过它来触发它

$('#element').trigger({
    type: 'mousedown',
    which: 3
});
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/trigger/#example-5

  • 这对我不起作用.我也试过Ben Lesh提供的解决方案但没有成功.? (3认同)
  • 好的,这让我走上正轨.只是为了完成答案,引用的插件实际上需要一个mousedown后跟一个mouseup ...所以触发像Niclas说必须跟着一个触发器('mouseup').因为它是'button'属性,而不是插件读取的'which'属性,我问题的实际答案是$('#element').trigger('mousedown',{button:2}).触发器('mouseup').谢谢尼克拉斯. (2认同)

Ben*_*esh 6

有一种更新的方法:

$('#element').triggerHandler('contextmenu');
Run Code Online (Sandbox Code Playgroud)

文档可以在这里找到.

  • 对我来说,"contextMenu"不起作用.相反,''contextmenu``正常工作. (3认同)