【问题标题】:jQuery: disable and enable touch with touchmovejQuery:使用 touchmove 禁用和启用触摸
【发布时间】:2012-12-30 14:12:49
【问题描述】:

我使用此代码来禁用和启用触摸:

jQuery(document).ready(function(){

 jQuery("body").on("touchmove", false);

 jQuery('button').click(function(){
     jQuery("body").on("touchmove", true);
 });

});

禁用触摸功能正常,但点击按钮后触摸无法启用。

代码有什么问题?

【问题讨论】:

  • 点击按钮后期望执行什么回调?

标签: jquery touchmove


【解决方案1】:

问题在于您没有传递on 要求的参数。您应该传递一个函数(事件处理程序),而不仅仅是一个布尔值。

解除绑定然后重新绑定的最简单方法是在某处设置一个布尔值并在您的处理程序中对其进行测试。例如:

myapp = {active: true}; // change this boolean
jQuery("body").on("touchmove", function(e) {
    if (myapp.active) { // change myapp.active
        // do things
    }
});

如果您想明确解除绑定,而不是将false 传递给on,请使用off。传递false 是一个未记录的技巧,可能会在未来的版本中中断。

offdocumentation 还包含另一个在单击时绑定/取消绑定函数的示例:

function aClick() {
  $("div").show().fadeOut("slow");
}
$("#bind").click(function () {
  $("body").on("click", "#theone", aClick)
    .find("#theone").text("Can Click!");
});
$("#unbind").click(function () {
  $("body").off("click", "#theone", aClick)
    .find("#theone").text("Does nothing...");
});

【讨论】:

    【解决方案2】:

    使用bind()unbind()

    试试这个

     jQuery('body').bind('touchmove', function(e){e.preventDefault()});
    
     jQuery('button').click(function(){
         jQuery('body').unbind('touchmove');
      });
    

    【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多