我正在开发一个网络应用程序。我试图禁用链接上的大部分默认 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/