[英]preventDefault on anchor tag with tel: doesnt work
當用戶單擊電話號碼時,它在台式機上不應該執行任何操作,而在移動電話上,它應呼叫該號碼。 我認為解決方案就像在台式機上返回false或preventDefault一樣簡單,但到目前為止它似乎不起作用:
<a href="tel:555555">555-555</a>
我正在使用mouseup()
以便僅在桌面上阻止它。 該功能運行,但瀏覽器仍嘗試打開另一個應用程序。
$('a[href^="tel"]').mouseup(function (e) {
e.preventDefault();
return false;
})
是否有像這樣實際可行的簡單解決方案,或者是檢測移動設備並更改href屬性的最佳方法?
解
感謝下面的答案。 mouseup()
運行,但不能阻止Default。 這是使用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 ...
});
嘗試像
function callMethod(){
//do stuff here
}
$('a[href^="tel"]').on('click',function (e) {
e.preventDefault();
callMethod();
})
$('a[href^="tel"]').on('touchstart',function (e) {
callMethod();
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.