Jquery mobile 使用jQuery移动弹出窗口作为上下文菜单
我使用jquerymobile弹出窗口作为右键单击桌面和移动设备上的taphold时启动的上下文菜单 我的问题:当我右键单击时,弹出窗口出现-它工作正常。但当弹出窗口打开,我在弹出窗口外右键单击时,弹出窗口关闭,标准浏览器上下文菜单出现,而不是新弹出窗口 弹出窗口在其自身下创建一个新层(其类为“.ui popup screen”),以捕获事件,但类似于Jquery mobile 使用jQuery移动弹出窗口作为上下文菜单,jquery-mobile,Jquery Mobile,我使用jquerymobile弹出窗口作为右键单击桌面和移动设备上的taphold时启动的上下文菜单 我的问题:当我右键单击时,弹出窗口出现-它工作正常。但当弹出窗口打开,我在弹出窗口外右键单击时,弹出窗口关闭,标准浏览器上下文菜单出现,而不是新弹出窗口 弹出窗口在其自身下创建一个新层(其类为“.ui popup screen”),以捕获事件,但类似于 $(".ui-popup-screen").on("click", function(event) { event.preventDef
$(".ui-popup-screen").on("click", function(event) {
event.preventDefault();
$('#myElementWithPopupContextMenu').contextmenu();
return false;
});
不起作用
有没有办法解决这个问题?我喜欢按照这种模式写作
// prevent default contextmenu and trigger as 'custom-contextmenu'
$(".ui-popup-screen")
.bind("contextmenu",function(e) {
e.preventDefault();
// create and show menu
$("#myElementWithPopupContextMenu").trigger( "custom-contextmenu" );
});
// context menu handler
$("#myElementWithPopupContextMenu").bind( "custom-contextmenu", function(e) {
// my context menu
}
问题是,jQuery以某种方式阻止了.ui弹出屏幕层上的事件。当我在.bind中写入
$(.ui弹出屏幕)时(“单击”,函数(事件){event.preventDefault();警报(“某物”);返回false;})代码>然后我在弹出窗口外单击,什么也没发生$(“#yourPopupId”).on({poppupbeforeposition:function(){$('.ui弹出屏幕').off();});哇,谢谢,这正是我想要的。请将其作为另一个答案来写,这样我就可以将您的答案标记为已接受。您是否为我们提供了一些代码,或者为taphold/ricghtclick解决方案提供了jsfidle?塔克斯!您是否为我们提供了一些代码,或者为taphold/ricghtclick解决方案提供了jsfidle?塔克斯!警告未来阅读谷歌文章的读者:如果您计划使用复制/粘贴功能,那么在上下文菜单中使用jqm弹出窗口是一个坏主意。jqm弹出窗口阻止其他元素获得焦点,这会导致复制到剪贴板的常用方法失败。