相关疑难解决方法(0)

在Android上的长按上禁用上下文菜单

我想禁用在我的Web应用程序中长时间点击(触摸并按住)图像后出现的上下文菜单.我看过不同想法的帖子怎么做,但它们似乎都不适合我.

有没有办法通过HTML/CSS/Javascript在Android上执行此操作?

javascript android mobile-webkit

53
推荐指数
6
解决办法
5万
查看次数

如何在jQuery Mobile(iOS)中禁用Anchor的默认行为

我正在使用PhoneGap和jQM为iPhone和iPad构建应用程序

<div class="ui-block-a">
   <a id="btnLink" href="#pageID" data-role="button"></a>
</div>
Run Code Online (Sandbox Code Playgroud)

它运行正常,但是当我在设备上运行它(没有尝试模拟器)并长按时,我会在普通浏览器中获得默认的iPhone菜单以打开或复制链接.

如何在我的应用中禁用此默认功能?

我试过这些没有成功:

$("a").click(function(event) {
  event.preventDefault(); // long press menu still apear
});


$("a").bind('click',function(event) {
console.log(['preventingclick',event.type]);
event.preventDefault(); // long press menu still apear
});
Run Code Online (Sandbox Code Playgroud)

如果我绑定'taphold'我仍然看到长按菜单,但在我点击取消后我看到控制台日志:["防止长按","taphold"]

$("a").bind('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault(); // long press menu still apear
});
Run Code Online (Sandbox Code Playgroud)

如果我在'taphold'事件中使用委托代码如下:

$("a").delegate('taphold', function(event) {
console.log(['preventing long press',event.type]);
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

将解决问题,但我不能再附加任何事件,因此我的按钮之后将不起作用.

$('#btnLink').bind("click", function() {
$.mobile.changePage('mypage', 'slide'); // won't fire any more because of the delegate before
});
Run Code Online (Sandbox Code Playgroud)

我知道代表将在现在和将来适用于所有元素,但我认为我接近答案,但还没有.

提前致谢

在iPhone上锚定长按菜单

jquery jquery-mobile cordova

11
推荐指数
3
解决办法
2万
查看次数

Jquery 上下文菜单事件在 ios/Safari 上不起作用

我有一个应该触发自定义行为的按钮。因此我正在使用 Jquery 的contextmenu事件。请看我的小提琴

目前我以这种方式绑定事件:

$( "#mybutton" ).contextmenu(function() {
  alert( "Handler for .contextmenu() called." );
});
Run Code Online (Sandbox Code Playgroud)

我也尝试像这样绑定它:

$( "#mybutton" ).on('contextmenu', function() {
  alert( "Handler for .contextmenu() called." );
});
Run Code Online (Sandbox Code Playgroud)

正如您将在我的小提琴中看到的,我使用以下命令禁用了 longpress 的默认 ios 行为:

body { -webkit-touch-callout: none !important; }
input { -webkit-user-select: none !important; }
Run Code Online (Sandbox Code Playgroud)

我测试了我的小提琴:

  • Chrome,Windows 上的最新版本(使用右键单击和触摸)
  • Android 上的 Chrome 使用 taphold
  • Internet Explorer,Windows 上的最新版本(使用右键单击和触摸)
  • Opera,Windows 上的最新版本(使用右键单击和触摸)
  • Firefox,Windows 上的最新版本(使用右键单击和触摸)
  • Safari,在 macOS Sierra 上,(使用右键单击)

以上所有工作都按预期工作。不幸的是,这不适用于我的 Ipad 上的 ios/Safari。当前的 Safari 版本是10.1.2

我试图通过将 Ipad 连接到我的 mac 并记录控制台输出来调试它。似乎该事件从未被触发。 …

html safari jquery contextmenu ios

11
推荐指数
1
解决办法
1676
查看次数

右键单击触摸屏设备

我正在使用http://medialize.github.io/jQuery-contextMenu/在右键单击时生成一些选项,它在桌面浏览器上运行良好,但在触摸屏设备上不起作用。 我应该添加什么代码才能使其在 ipad 等触摸设备上工作

我在桌面上使用以下代码

$(function(){
    jQuery.contextMenu({
        selector: '.context-menu-one', 
        callback: function(key, options) {
            window.console && console.log(m) || alert(m); */
            if(key=="delete")
            {
                //some action
            }

            if(key=="copy")
            {

                //some action              
            }

        },
        items: {
            "copy": {name: "Kopieren", icon: "copy"},
            "delete": {name: "Löschen", icon: "delete"},

        }
    });
Run Code Online (Sandbox Code Playgroud)

jquery touch ipad-2

5
推荐指数
1
解决办法
4606
查看次数

在特定元素上禁用移动长按上下文菜单

我有一个带有各种控件的图片库。其中一个控件是基本的删除功能,要删除,请单击并按住约 1 秒钟以确认询问您是否要删除。一切正常,只是在移动设备上它经常导致“将图像另存为等”菜单弹出,必须在执行预期操作之前将其关闭。

我已经阅读了各种修复程序,但似乎没有一个适用于我的 Galaxy S5 上当前版本的 Chrome 移动版,我能找到的最新答案是 2013 年的。

我发现有人说上下文菜单是它自己的功能,所以我尝试了这样的事情:

    window.oncontextmenu = function(event) {
        event.preventDefault();
        event.stopPropagation();
        return false;
    };
Run Code Online (Sandbox Code Playgroud)

但这并没有阻止上下文菜单显示在我的 S5 上。正如我所说,我希望找到一种解决方案来防止它出现在某些项目上,而不是整个窗口。

感谢 Tasos 的回答

document.getElementById('yourElement').oncontextmenu = function(event) {
    event.preventDefault();
    event.stopPropagation(); // not necessary in my case, could leave in case stopImmediateProp isn't available? 
    event.stopImmediatePropagation();
    return false;
};
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery android

5
推荐指数
1
解决办法
2966
查看次数