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

jQuery 也提供了一个toggleClass方法。

于 2013-03-10T04:21:58.103 回答
0

JQuery中已经有一个toggleClass可用的功能,它似乎可以满足您的需求。

于 2013-03-10T04:22:37.183 回答
0

尝试:

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

classnamehere你的班级名称在哪里。

于 2013-03-10T04:25:16.090 回答