当用户点击电话号码时,它不应该在桌面和移动设备上执行任何操作,而应拨打该号码。我认为解决方案就像在桌面上返回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();
}
});
答案 0 :(得分:2)
你可以这样做:
$('.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 ...
});
答案 1 :(得分:0)
尝试
function callMethod(){
//do stuff here
}
$('a[href^="tel"]').on('click',function (e) {
e.preventDefault();
callMethod();
})
$('a[href^="tel"]').on('touchstart',function (e) {
callMethod();
})