Phonegap jQuery event.target不工作

时间:2013-05-15 07:49:25

标签: jquery ipad cordova event-handling

我有iPad的PhoneGap-iOS应用程序,用户将获得Logout Popup,如下图所示。

Logout popup

我想在用户点击Body时隐藏此弹出窗口。 我的code适用于原生浏览器,iPad Simulator上的无法正常工作

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

4 个答案:

答案 0 :(得分:3)

在iPhone中,iPad设备点击事件仅适用于锚标记,不适用于span或div标记,因此请尝试此操作。

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

答案 1 :(得分:2)

也许event.touches[0].target可以在移动版Safari中执行此操作(您已经获得了触摸数组,以便逐个管理多点触控事件)。 如本主题中所述:Mobile Safari - event.target in touch event

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

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

非常简单:只需添加此库,任何touh事件都会像鼠标事件一样。

(按下/向上=>鼠标向下/向上,单击=>点击等...)

答案 2 :(得分:2)

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

}


});

答案 3 :(得分:1)

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

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