首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:禁用和启用touchmove触摸

jQuery:禁用和启用touchmove触摸
EN

Stack Overflow用户
提问于 2013-01-16 17:44:58
回答 2查看 43.3K关注 0票数 1

我使用下面的代码来禁用和启用触摸:

代码语言:javascript
复制
jQuery(document).ready(function(){

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

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

});

该功能可用于禁用触摸,但单击按钮后无法启用触摸。

代码有什么问题?

EN

回答 2

Stack Overflow用户

发布于 2013-01-16 17:48:01

错误之处在于您没有传递on所需的参数。您应该传递一个函数(事件处理程序),而不仅仅是一个布尔值。

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

代码语言:javascript
复制
myapp = {active: true}; // change this boolean
jQuery("body").on("touchmove", function(e) {
    if (myapp.active) { // change myapp.active
        // do things
    }
});

如果您希望最终解除绑定,而不是将false传递给on,请使用off。传递false是一个无文档记录的技巧,可能会在未来的版本中失效。

off documentation还包含在单击时绑定/解除绑定函数的另一种方法的示例:

代码语言:javascript
复制
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...");
});
票数 11
EN

Stack Overflow用户

发布于 2013-01-16 17:50:51

使用bind()unbind()

尝尝这个

代码语言:javascript
复制
 jQuery('body').bind('touchmove', function(e){e.preventDefault()});

 jQuery('button').click(function(){
     jQuery('body').unbind('touchmove');
  });
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14355365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档