JQuery“tap”事件发生两次

时间:2012-08-21 13:44:08

标签: jquery events tap

我对JQuery移动“tap”事件有一个真正的问题。它发射两次,我似乎无法阻止它。

问题是我有一个页面index.html,当你点击一个按钮时,你转到page2.html。问题是当你进行快速浏览时,你将转移到page2.html,然后它将再次点击该页面,这会导致严重的问题。无论如何我能解决这个问题吗?我试过返回false;但它不起作用。这是我使用的代码:

$("#read").on('tap',function()
{
    $.mobile.changePage('pages/reader/reader.html');
    return false;
});

更新: 经过大量的测试后,它似乎不是被触发两次的事件。看起来额外的点击是SOMETIMES跟随到另一页,所以下一页上的其他按钮被点击。这是一个严重的问题,我不能像这样发布它。

任何人都有想法为什么JQuery mobile会以这种糟糕的方式表现出来?

2 个答案:

答案 0 :(得分:1)

我对jquerymobile没有太多经验,但这可能是eventPropagation的原因,阻止事件传播到它的父节点可能有帮助。

试试这个:

$("#read").on('tap',function(e)
{
    $.mobile.changePage('pages/reader/reader.html');
    e.stopPropagation();
    return false;
});

答案 1 :(得分:0)

尝试:

$("#read").on('tap',function()
{
    var $this = $(this);

    if (!$this.hasClass("tapped")) {
        $this.addClass("tapped");
        $.mobile.changePage('pages/reader/reader.html');
    }
});

如果您需要重新启用该按钮,只需删除Class(“tapped”),就像您可能知道的那样。