0

私はモバイルタッチイベントにHammer.jsライブラリを使用していますが、jQueryで使用する例では、次のようになっています。

$('#test_el').hammer().on("tap", ".nested_el", function(event) {
    console.log(this, event);
});

これは簡単です。ただし、トグル動作を#test_elに組み込みたいと思います。つまり、上記の例を次のように置き換えた場合:

$('button').hammer().on("tap", function() {
    $('div').addClass('open');
}, function {
   $('div').addClass('close');
});

この「トグル」動作を機能させるにはどうすればよいですか?

4

4 に答える 4

2

最初に、すべてのボタンに開始クラスを追加できます。次に、イベント時に、クラスが存在するかどうかを確認できます。これにより、要素をタップしたときの要素の状態を知ることができます。

$('button').addClass('close');

$('button').hammer().on('tap', function() {
  if ($(this).hasClass('close')) {
    $(this).removeClass('close').addClass('open');
    // Event code
  }
  else {
    $(this).removeClass('open').addClass('close');
    // Event code
  }
});
于 2013-03-10T04:23:08.980 に答える
0

試す:

$('#test_el').hammer().on("tap", ".nested_el", function(event) {
    $(this).toggleClass("classnamehere");
});

classnamehereクラス名はどこになりますか。

于 2013-03-10T04:25:16.090 に答える
0

jQueryはtoggleClassメソッドも提供します。

于 2013-03-10T04:21:58.103 に答える
0

JQueryにはすでにtoggleClass利用可能な関数がありますが、それはあなたが望むことをしているようです。

于 2013-03-10T04:22:37.183 に答える