我使用下面的代码来禁用和启用触摸:
jQuery(document).ready(function(){
jQuery("body").on("touchmove", false);
jQuery('button').click(function(){
jQuery("body").on("touchmove", true);
});
});该功能可用于禁用触摸,但单击按钮后无法启用触摸。
代码有什么问题?
发布于 2013-01-16 17:48:01
错误之处在于您没有传递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...");
});发布于 2013-01-16 17:50:51
使用bind()和unbind()
尝尝这个
jQuery('body').bind('touchmove', function(e){e.preventDefault()});
jQuery('button').click(function(){
jQuery('body').unbind('touchmove');
});https://stackoverflow.com/questions/14355365
复制相似问题