6

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

注销弹出窗口

我希望当用户单击正文时隐藏此弹出窗口。我code适用于本机浏览器的不适用于iPad Simulator.

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

4 回答 4

3

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

$("body").on('click touchend', function (evt) {
  if (!(evt.target.id == "launchUsername") {
    $('#launchLogout').hide();
  }
});
于 2013-08-23T05:20:44.253 回答
2

也许event.touches[0].target可以在移动 safari 上做到这一点(你有 touches 数组来管理多点触控事件,一个手指)。如本主题所述:Mobile Safari - event.target in touch event

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

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

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

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

于 2013-05-15T08:29:27.047 回答
2
$("body").on('touchend', function (evt) {
    if (!(evt.target.id == "launchUsername") {
        $('#launchLogout').hide();
    }else{
evt.stopPropagation();

}


});
于 2013-08-17T06:51:51.600 回答
1

你尝试过不同的活动了吗?可能是这样的?

$("body").on('touchend', function (evt) {
    if (!(evt.target.id == "launchUsername") {
        $('#launchLogout').hide();
    }
});
于 2013-08-16T22:07:07.350 回答