iPhone Javascript确认对话框错误

iPhone Javascript确认对话框错误,javascript,ios,jquery-mobile,mobile,dialog,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) { i

我弹出了一个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;
}
以下是问题页面的链接:

任何帮助都将不胜感激

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

这是jQuery Mobile“幻影点击”的详细讨论。在论坛页面上,提出了一个解决方案,我在下面复制了一个小错误修复:

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,则忽略该事件。

感谢您的快速响应。星期一早上我第一件事就是试用你的解决方案,然后回来汇报。祝你周末愉快。我实施了你的解决方案,我也遇到了同样的问题。我想知道这是否真的是上面提到的“鬼点击”,或者可能是我没有正确地实现它。您可以在这里看到问题仍然存在:我编辑了原始帖子以包含您建议的解决方案。您是否可以尝试
return false
而不是在ghost click check中返回,并在prevent default之后添加return false?我尝试在您提到的位置添加
return false
,但仍然不起作用。我最终使用了这个解决方案:我唯一不喜欢这个解决方案的地方是我不能将
tap
作为事件使用。我不得不使用
touchstart
单击
。同样,我编辑了OG帖子以包含您的更改。