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