我想知道在我正在处理的简单文档上设置hammer.js配置的最佳方法是什么。这是我的代码:
var tappableArea = $('.content');
var touchableArea = $('.sidebar');
function reloadHammerGestures() {
tappableArea.hammer().off("doubletap");
touchableArea.hammer().off("swipeleft swiperight");
hammerGestures();
}
function hammerGestures() {
tappableArea.hammer().off("doubletap");
touchableArea.hammer().off("swipeleft swiperight");
if (fullScreenMode()) {
touchableArea.hammer().on("swipeleft swiperight", function(event) {
alert("swiped!");
});
else if (!fullScreenMode()) {
tappableArea.hammer().on("doubletap", function(event) {
alert("tapped");
});
}
}
$(document).ready(function() {
hammerGestures();
});
$(window).resize(function () {
reloadHammerGesture();;
});
该功能已加载到$(document).ready()
和(window).resize()
,这就是为什么我在开始时创建.off()
的原因。
我想知道这是在屏幕模式条件更改时禁用它的错误方法,如果你可以帮我改进这段代码,我会非常高兴。
保重,祝你有个愉快的一天:)
答案 0 :(得分:1)
你可以这样做:
touchableArea.hammer().off().on(...)
或$(touchableArea).unbind()
可能有用。
或两者兼顾:
$('#touchableDiv, #tappableDiv').unbind()
另外:我在github上看到有人添加了hammer.destroy()
方法。