我使用以下代码来禁用和启用触摸:
jQuery(document).ready(function(){
jQuery("body").on("touchmove", false);
jQuery('button').click(function(){
jQuery("body").on("touchmove", true);
});
});
该功能可以很好地禁用触摸,但是单击按钮后无法启用触摸。
代码有什么问题?
最佳答案
错误的原因只是您没有传递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
是一个未记录的技巧,在将来的版本中可能会破坏。off
documentation还包含一个在单击时绑定/取消绑定函数的另一种方式的示例: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...");
});