我有一个iPhone应用程序,我有很多链接,允许用户打电话或发电子邮件。
<a href="tel:12345678912">Call Us</a>
<a href="mailto:support@help.com">Email Us</a>
因为我使用jQuery预测每个<a>
的默认值。
var after = function(e, sender, action) {
if (href.indexOf("tel:") === 0 || href.indexOf("mailto:") === 0) {
return true;
}
// more of my code
};
if (window.Touch) {
$("a").bind("touchstart", function(e1) {
e1.preventDefault();
var that = $(this);
var moved = false;
that.bind("touchmove", function(e2) {
moved = true;
});
that.bind("touchend", function(e3) {
that.unbind("touchmove");
that.unbind("touchend");
if (!moved) {
after(e3, this, "touchend");
return false;
}
});
});
}
else {
$("a").live("click", function(e) {
e.preventDefault();
after(e, this, "click");
});
}
不应该有用吗?
答案 0 :(得分:1)
preventDefault表示您正在阻止链接执行。
从您的代码中看起来您正在停止点击链接,以便您可以使用更好的触摸事件。因此,您需要在成功时加载页面。
不是100%确定代码的工作方式,但看起来if (!moved) {
就是点击链接并希望页面发生变化。所以只需添加window.location = this.href