3

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

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

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

更新:在做了很多测试之后,它似乎不是被触发两次的事件。似乎有时会在另一个页面上进行额外的点击,因此点击下一页上的其他按钮。这是一个严重的问题,我不能像这样发布它。

任何人都知道为什么 JQuery mobile 会以这种糟糕的方式表现?

4

2 回答 2

1

我对 jquerymobile 没有太多经验,但这很可能是 eventPropagation 的原因,停止将事件传播到其父级可能会有所帮助。

尝试这个:

$("#read").on('tap',function(e)
{
    $.mobile.changePage('pages/reader/reader.html');
    e.stopPropagation();
    return false;
});
于 2012-08-21T13:54:34.620 回答
0

尝试:

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

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

如果您需要重新启用该按钮,只需 removeClass("tapped"),您可能知道。

于 2012-08-21T13:47:30.113 回答