javascript - 如何使用 on() 切换元素?

标签 javascript jquery

我正在使用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');
});

如何让这种“切换”行为发挥作用?

最佳答案

最初,您可以向所有按钮添加起始类。然后在事件中,您可以检查该类是否存在。这可以让您知道点击元素时元素所处的状态。

$('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
  }
});

关于javascript - 如何使用 on() 切换元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15318853/

相关文章:

javascript - 获取原型(prototype)对象的名称

javascript - 使用 <audio> JavaScript 播放列表

php - 如何在以逗号分隔的单个文本字段中使用多个关键字搜索 mysql 数据库列?

jquery - 地址状态困惑

javascript - jQuery 防止函数在点击时重复

javascript - 尽管进行了检查,但无法读取未定义的属性

javascript - 如何在 Chase Paymentech 的 Hosted Payment Form 中使用响应函数?

JavaScript Vector2d 数学

java - jquery/Angular 调度器实现

javascript - jQuery $(document).ready 和 UpdatePanels?