【问题标题】:Phonegap jQuery event.target Not workingPhonegap jQuery event.target 不工作
【发布时间】:2013-05-15 07:49:25
【问题描述】:

我有适用于 iPad 的 PhoneGap-iOS 应用程序,用户将在其中获得注销弹出窗口,如下图所示。

我希望在用户单击正文时隐藏此弹出窗口。 我的code 在本机浏览器上工作,但在iPad Simulator 上不工作。

$("body").ClickOrTouch(function (evt) {
    if (!(evt.target.id == "launchUsername") {
        $('#launchLogout').hide();
    }
});

【问题讨论】:

  • 你试过真正的iDevice吗?
  • 我也在真机上测试过..

标签: jquery ipad cordova event-handling


【解决方案1】:

在 iPhone 中,iPad 设备的点击事件仅适用于锚标签,不适用于 span 或 div 标签,所以试试这个它会起作用。

$("body").on('click touchend', function (evt) {
  if (!(evt.target.id == "launchUsername") {
    $('#launchLogout').hide();
  }
});

【讨论】:

    【解决方案2】:

    也许event.touches[0].target 可以在移动 safari 上执行此操作(您拥有 touches 数组以管理多点触控事件,一个手指操作)。 如本主题所述:Mobile Safari - event.target in touch event

    但我认为 jquery-ui-touch-punch 值得一试。

    这是我在移动网络应用(如cordova/phonegap)上用jquery管理触摸事件的方法

    非常简单:只需添加此库即可使任何 touh 事件的行为类似于鼠标事件。

    (触摸向下/向上 => 鼠标向下/向上,单击 => 单击等...)

    【讨论】:

    • 我会尝试使用 jquery-ui-touch-punch。但是我想知道当我在 iPad 模拟器上测试时上面的代码出了什么问题
    • 嗯不确定它的“clickOrTouch”是否没有大写“C”?
    • ClickOrTouch 事件被执行。只是 event.target 每次都显示 undefined。
    • 是的,根据 jquery 文档,目标应该为跨浏览器标准化...来源:api.jquery.com/category/events/event-object/…)
    • 那么我该如何进行标准化呢?任何建议
    【解决方案3】:
    $("body").on('touchend', function (evt) {
        if (!(evt.target.id == "launchUsername") {
            $('#launchLogout').hide();
        }else{
    evt.stopPropagation();
    
    }
    
    
    });
    

    【讨论】:

      【解决方案4】:

      您尝试过不同的活动吗?也许是这样的?

      $("body").on('touchend', function (evt) {
          if (!(evt.target.id == "launchUsername") {
              $('#launchLogout').hide();
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多