javascript - 使用 tel : doesnt work 防止 anchor 标记上的默认值

标签 javascript jquery

当用户点击一个电话号码时,它应该在桌面上不执行任何操作,而在移动设备上它应该调用该号码。我认为解决方案就像在桌面上返回 false 或 preventDefault 一样简单,但到目前为止它似乎不起作用:

<a href="tel:555555">555-555</a>

我正在使用 mouseup() 这样它只会在桌面上阻止它。该函数运行但浏览器仍尝试打开另一个应用程序。

$('a[href^="tel"]').mouseup(function (e) {
    e.preventDefault();
    return false;
})

是否有像这样简单且实际有效的解决方案,或者是检测移动设备并更改其他问题中看到的 href 属性的最佳方法?

解决方案

感谢下面的回答。 mouseup() 运行但无法阻止默认。这是使用 modernizr 的最终代码:

$('a[href^="tel"]').on('click',function (e) {
    if ($("html").hasClass("no-touch")) {
        e.preventDefault();
    }
});

最佳答案

你可以这样做:

$('.no-touch a[href^="tel"]').on('click',function (e) {
    e.preventDefault();
});

如果您需要它在触摸设备上工作,并且正在使用 Modernizr(看起来像),您可以改为这样做:

$('a[href^="tel"]').on('click',function (e) {

   if (!Modernizr.touch) {
       e.preventDefault();
   }

    ... my touch code ...
});

关于javascript - 使用 tel : doesnt work 防止 anchor 标记上的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28086176/

相关文章:

jquery - 使用 AJAX 重新加载部分网页后,Draggable 停止工作

jquery - 限制用户在具有数据属性的插槽中重复颜色

javascript - 打印出的 html 页面上有水印

javascript - Selenium Webdriver xpath 查找元素

javascript - Angular js ng重复条件ng类不应用css类

javascript - Uncaught Error : Component 'settings' : Unknown template value: [object Object]

javascript - jQuery - 在 highcharts div 上动态添加按钮

javascript - 让CSS回到动态phonegap应用程序(jQuery)$().append问题

javascript - 使用 jQuery/JS 打开时,使 <details> 标签的内容具有动画效果

javascript - - 我正在尝试编写输入应为 abbbcc 且输出应为 a1b3c2 的代码