暂时禁用touchstart事件

时间:2014-07-07 21:12:59

标签: javascript jquery

我有一个基于移动设备的网络应用程序。目前我在进行ajax调用时遇到问题。可以在ipad设备上单击包含在div中的等待微调器。触发的javascript事件是touchstart。反正有没有阻止此事件进行正常处理?

试图拨打以下电话,但是没有用。

Disable
 document.ontouchstart = function(e){ e.preventDefault(); }
Enable
  document.ontouchstart = function(e){ return true; }

如何处理touchstart

$(document).on('touchstart', function (eventObj) {
    //toggle for view-icon
    if (eventObj.target.id == "view-icon") {
        $("#view-dropdown").toggle();
    } else if ($(eventObj.target).hasClass("view-dropdown")) {
        $("#view-dropdown").show();
    } else {
        $("#view-dropdown").hide();
    }
});

1 个答案:

答案 0 :(得分:0)

正如user3032973评论的那样,您可以使用touchLocked变量,该变量运行正常。

我已将它与Cordova Keyboard-Plugin结合使用。键盘显示时将禁用滚动,并在键盘隐藏时重新启用滚动:

var touchLocked = false;

Keyboard.onshowing = function () {
    touchLocked = true;
};

Keyboard.onhiding = function () {
    touchLocked = false;
};

document.ontouchstart = function(e){
    if(touchLocked){
        e.preventDefault();
    }
};