【问题标题】:phonegap jquerymobile list item press eventphonegap jquerymobile 列表项按下事件
【发布时间】:2013-01-03 12:58:28
【问题描述】:

我在 Android 上的 phonegap 应用程序有问题。当我点击一个列表项时,点击似乎会进入下一页,并且与我在前一页上按下的位置相同的项目也被按下。

有两种情况会发生这种情况,第一种是按下列表视图项会打开带有子列表的页面。第二个是按下列表项打开一个表单。 请注意,如果我长按某个项目,则不会出现此问题。

当应用在 iOS 上运行时,这不是问题。

关于如何防止这种情况的任何想法?

编辑: 更新后的点击处理程序(但仍然受到点击的影响):

    $(parentListView).on('click', 'li', function(event) {
        event.stopPropagation();
        event.stopImmediatePropagation();
        $.mobile.changePage("#care-plans?id=" + this.id + "&" +
                "name=" + this.name, {
            transition : "none",
            });
    });

【问题讨论】:

    标签: jquery cordova jquery-mobile iscroll4


    【解决方案1】:

    可以像这样防止通过 jQM 事件:

    1. 假设您有一个导致跌落事件的按钮,可以这样防止:

      $('#buttonID').on('click', function (event) {
          event.stopPropagation();
          event.stopImmediatePropagation();
      });
      
    2. 类似的解决方案:

      $('#buttonID').on('click', function (event) {
          return false;
      });
      

      这个解决方案有一个问题,不像第 1 点。return false 也起到了 preventDefault() 的作用。有关此解决方案的更多信息,请访问here

    3. 前 2 个解决方案应该适用于您的情况。最坏的情况,不要在第二页绑定事件。仅在显示事件之前的第二页 pagebefore 中绑定它们,并在 pagehide 事件中再次删除它们。更多关于 jQM 事件顺序可以找到here

    【讨论】:

    • 感谢 Gajotres 的信息。我已经尝试过您的解决方案,但不幸的是它仍在发生。经过更多调查,看起来这可能是 iSroll 问题。如果我从我的 html 中删除 data-iscroll 标签,点击就会消失(但我显然失去了列表的滚动能力)。
    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多