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()いる(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 に答える