【问题标题】:Disable touch events in phonegap (xcode iOS)禁用 phonegap 中的触摸事件(xcode iOS)
【发布时间】:2012-11-18 09:48:51
【问题描述】:

我遇到了最烦人的情况。好的,这就去。我正在为移动应用程序使用基于 javascript 的滑动菜单。 “滑块”的工作方式与 Facebook 手机类似,您可以在其中单击按钮以在左侧显示菜单,然后再次单击以关闭菜单。作为替代方案,如果您在菜单显示时触摸页面仍然可见的部分,它也会关闭。就是这样。

问题:请注意,我正在为这个应用程序使用 Phonegap。当我在 Xcode 中运行 iOS 模拟器时,除了向左滑动之外,一切都可以正常工作,例如,页面会移动。我想一起禁用滑动事件。我已经尝试过 preventDefault、return false 等。似乎没有任何效果。同样,我唯一的目标是禁用触摸事件,因为对于这个应用程序,我根本不需要它们。请参阅下面的菜单显示/隐藏的 javascript 代码。

谢谢提前。一切都值得赞赏。

$(function(){
var menuStatus;     

// Show menu
$("a.showMenu").click(function(){

$('#menu').show();
    if(menuStatus != true){

    $(".ui-page-active").animate({
        marginLeft: "170px",

      }, 300, function(){menuStatus = true});
      return false;
      } else {

        $(".ui-page-active").animate({
            marginLeft: "0px",
      }, 300, function(){menuStatus = false});
        return false;
      }
});

// Menu behaviour
$("#menu li a").click(function(){
    var p = $(this).parent();
    if($(p).hasClass('active')){
        $("#menu li").removeClass('active');
    } else {
        $("#menu li").removeClass('active');
        $(p).addClass('active');
    }
});
}); 

【问题讨论】:

    标签: android ios jquery-mobile cordova touch


    【解决方案1】:

    您可以将$.event.special.swipe.horizontalDistanceThreshold 覆盖为更大的值,并防止页面上的滑动触发滑动事件。

    参考Touch Events -> Swipe

    【讨论】:

    • 哦,所以本质上我可以覆盖默认的 Horizo​​ntalDistanceThreshold 30 并将其设置为非常大的值,例如 9999,这显然无法在 iPhone 设备上达到...结果滑动事件永远不会被触发,对吧?
    • 您好 Nirmal,感谢您的回复。我尝试了您的建议,但不幸的是它并没有解决问题。实际上我只想禁用所有触摸事件 - 例如滑动、拖动等。不确定这是否有意义。
    • 您好 Nirmal,再次感谢您的帮助。我想我可能已经想通了。我使用下面的代码来禁用触摸事件。实际上,我不清楚是我的坏事。我最关心的是touchmove。 $(document).on('touchmove', function(e) { e.preventDefault(); return false; });
    • 不用说,我也应该能够将其添加到特定元素中。非常感谢您引导我朝着正确的方向前进。 - EA
    • 如果您实际上试图完全禁用触摸事件;您可以尝试使用 JQueryMobile 下载生成器工具来创建不包含触摸事件的 JQM 版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多