我有以下功能,可以在所有浏览器上完美运行。但是,该功能(主要用于记录用户)在iPad上不起作用(v3)。请注意,这是一个网络应用程序。
我最初的想法是window.location
,我听说它在iPad上运行不正常。但我尝试location.href
和window.location.href
也无济于事。
没有控制台错误或奇怪的行为。
任何人遇到类似的问题吗?
$(document).on('touchstart click', '.sb-sign-out', function (e) {
e.stopPropagation(); e.preventDefault();
$.post('@Url.Action("clientLogout", "master")', {}, function () {
window.location = "@Url.Action("campaigns", "master")";
});
});
这是DIV:
<div class="sb-sign-out button round">LOGOUT</div>
答案 0 :(得分:2)
如上面的评论所述,此问题是所有非a-href按钮都应使用touchend
与touchstart
。这解决了我的问题。
$(document).on('touchend click', '.sb-sign-out', function (e) {
e.stopPropagation(); e.preventDefault();
$.post('@Url.Action("clientLogout", "master")', {}, function () {
window.location = "@Url.Action("campaigns", "master")";
});
});
答案 1 :(得分:1)
我认为使这项工作可靠的最佳方法是通过jquery mobile中的'tap'事件处理程序,例如: $(document).on('click tap',elem,function(e){});
见这里:http://api.jquerymobile.com/tap/
对于普通的jquery这个插件会给你相同的能力: http://plugins.jquery.com/tap/
touchend的问题在于,如果有人触摸按钮,然后决定不注销并将手指从按钮移开,它会被触发但不想要...