移动浏览器会触发两次点击/点击事件

时间:2013-09-12 15:00:15

标签: android jquery html ios jquery-mobile

我有一个移动网络应用程序,当点击一个按钮时,它会自动为你创建一个玩家团队。没有玩家的情况下你第一次没有得到任何警告,但是如果你的团队中已经有人,你会收到警告他们将被删除。

只有在您快速点击按钮时才会出现此错误,但如果按住该按钮一段时间,它只会触发一次。

有没有办法让点击事件只开一次?这种情况发生在iOS和Android(4.3)上?

以下代码:

$(document).on('click tap','.autoTeam',function(e){
    $.ajax({
        type:"POST",
        url:alink+"assets/scripts/myteam-ajax-0.2",
        data:"page=autoteamCheck&tid="+tid,
        success:function(data2)
        {
            if(data2['totalPlayers'] == 0)
            {
                var c = true;
            }
            else
            {
                c=confirm('Using the auto create will remove all players from your team, are you sure you wish to continue?');
            }
            if(c == true)
            {
                $.ajax({
                    type:"POST",
                    url:alink+"assets/scripts/myteam-ajax-0.2",
                    data:"page=autoteam&tid="+tid+"&lid="+lid,
                    success:function(data)
                    {
                        if(data['error'] == 'Y')
                        {
                            alert(data['message']);
                        }
                        else
                        {
                            window.location.reload();
                        }
                    },
                    dataType:"json"
                });
            }
        },
        dataType:"json"
    });
    e.stopImmediatePropagation();
    e.gesture.preventDefault();
    e.preventDefault(); return false;
});

<input class="button autoTeam" data-role="none" value="Auto Create" type="button"  style="margin-right:20px; font-size:0.8em;"/>

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我的解决方案是在事件处理程序的末尾添加return false;。例如:

$(document).on("click, tap", ".autoTeam", function(event){
    // do thing
    return false; // double event fix
});