javascript - 在 iOS Safari 中禁用链接上的默认拖动行为

标签 javascript html css ios safari

我正在开发一个网络应用程序。我试图禁用链接上的大部分默认 iOS Safari 行为,因此我将链接上的“-webkit-touch-callout”CSS 属性设置为“无”。但是,我仍然注意到,如果我将手指放在链接上一秒钟左右,然后拖动它,然后放开它,链接就会在新窗口中打开。我不想要这种行为。我希望它在同一个窗口中打开,或者什么也不做。有谁知道如何做到这一点?

编辑:我正在使用 jQuery,所以如果可以简化事情,可以使用 jQuery 的事件处理函数。

编辑 2: 对于某些链接,我使用处理程序来覆盖它们的默认行为。例如:

$(".categoryList a").live("click", function(e) {
    e.preventDefault();
    $.get(
        "someOtherUrl",
        {someVariable: "someValue"},
        function(result) {
            $(".result").html(render(result));
        }
    );
});

我的实际代码比这更复杂,但我的意思是我覆盖了某些链接上的默认点击操作,无论我用来解决此问题的解决方案都不应干​​扰这些处理程序。 Sanooj 的解决方案不适用于我的目的,因为无论我是否有任何处理程序来防止这种行为,“window.location”分配总是重定向浏览器。也许我可以说不应该为此目的使用链接,但这是我开始使用它之前应用程序的样子,改变这将是一个大元素。我想知道是否有更简单的方法来解决这个问题。

最佳答案

请检查一下

$('a').live('click', function (event) {
    event.preventDefault();
    window.location = $(this).attr("href");
});

关于javascript - 在 iOS Safari 中禁用链接上的默认拖动行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522755/

相关文章:

javascript - Mustache(或 Handlebars)遍历两个列表

javascript - Mediaelement.js 简单音频播放列表皮肤

html - 用css绘制不规则形状(应该是响应式的)

javascript - 如何从 Chrome 开发者控制台访问 w3school 页面上的元素?

css - 使元素以 100% 宽度的 div 居中放置在我的页面上

javascript - IO 作为组合链中的第一个

javascript - 无法从 jTemplate 输出中 Hook Click 事件

javascript - GET http ://js:port/socket. io/1/404 未找到

jQuery 在使用 Firefox 时忽略非 mozilla CSS3 转换

html - 倒梯形导航