javascript - iPhone Javascript 确认对话框错误

标签 javascript ios jquery-mobile mobile dialog

我有一个 javascript 确认对话框弹出,但是当我点击“取消”时,然后在对话框关闭后,点击屏幕上的任意位置,对话框再次弹出。它只会额外发生一次,然后您可以再次点击页面,而不会弹出对话框。

我只在运行 iOS 5.0.1 的 iPhone/iPad 上看到这个。我没有 iOS 6 设备,所以我不确定它在那里发生。

这是我使用的代码:

$(bpm.remoteAppDivName).on('tap', 'a.delete-pending-payment', function(event) { 

    if  (isJQMGhostClick(event)) { return false; }

    var deleteGlobalPaymentURL = $(this).attr('href');

    var confirmMsg = confirm ("Are you sure you want to do that?"); 

    if (confirmMsg === true){

        window.location = '/index.htm';

    }
    event.preventDefault();
    return false;

});

var lastclickpoint, curclickpoint;
var isJQMGhostClick = function(event){
    curclickpoint = event.clientX+'x'+event.clientY;
    var ret=false; 
    if (lastclickpoint === curclickpoint) {
        ret=true;
    } else {
        ret=false;
    }
    lastclickpoint = curclickpoint;
    return ret;
}

这是问题页面的链接:http://www.5280skateparks.com/dev/confirmBug.htm

如有任何帮助,我们将不胜感激。

更新:我刚刚确认它也在 iOS 6.0.1 上发生。

最佳答案

这是对 jQuery Mobile“Ghost Click”的详细讨论 herehere .在论坛页面上,提出了一个解决方案,我在下面复制了一个小错误修复:

var lastclickpoint, curclickpoint;
var isJQMGhostClick = function(event){
    curclickpoint = event.clientX+'x'+event.clientY;
    var ret=false; 
    if (lastclickpoint === curclickpoint) {
      ret=true;
    } else {
      ret=false;
    }
      lastclickpoint = curclickpoint;
   return ret;
}

我已经稍微修改了这段代码,不再总是期待一对点击。该功能现在可以在 0 次重影点击和 2 次以上重影点击的情况下正常工作。您可以通过在点击处理程序的开头检查 isJQMGhostClick(event) 并在 isJQMGhostClick 函数返回 true 时忽略该事件来使用它。

关于javascript - iPhone Javascript 确认对话框错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14657150/

相关文章:

ios - 为什么/什么时候我必须点击两次才能触发 iOS 上的点击

ios - 在 Wax 中访问 Objective-C 实例

jquery - 在 jQuery 中绑定(bind) 'touchstart' 事件不适用于 android phonegap 和 backbone

JQuery Mobile 下拉列表定位

javascript - Scala Play Issue 中的 PayPal 客户端实现

php - gif 加载器作为顶层居中

javascript - 将 paper.js 集成到 angular.js 中

javascript - Bootstrap Nav 在 MS Edge/IE 中无法正常工作

ios - 删除第三方键盘 "Add New Keyboard..."屏幕上的字幕

css - 在 javascript jquery mobile 中显示隐藏和显示?