2

我想知道在我正在处理的简单文档上设置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()and上(window).resize(),所以这就是我.off()开始制作的原因。我想知道这是在屏幕模式条件更改时禁用它的错误方法,如果你能帮助我改进这个代码,我会很高兴。

保重,祝你有美好的一天:)

4

1 回答 1

1

那么你可以这样做:

touchableArea.hammer().off().on(...)

或者$(touchableArea).unbind()可能会工作。

或者两者都做:

$('#touchableDiv, #tappableDiv').unbind()

还:我在 github 上看到有人添加了一个hammer.destroy()方法。

另请参阅:删除锤子事件

于 2013-07-21T19:57:08.267 回答