切换加载时存在的类

时间:2013-10-23 19:04:53

标签: jquery coffeescript

我有HAML标记,如下所示:

.image_container{style: 'background-image: url(' + item['image'] + ')'}
      .check

我有一个CoffeeScript函数,可以在点击时为.image_container添加一个类,如下所示:

toggleProduct: (evt) ->
      $(evt.currentTarget).find('.image_container').toggleClass "unselected"

我想在此函数中添加一些内容,删除类.check onclick并将其添加回来(如果它尚未存在)。最初这听起来像是对我的基本切换,但我不确定解决方案是什么,因为该类已经存在于此实例中。是否有更简单的方法来实现这一点,而无需使用if / else语句来检查类是否在那里然后添加或删除它?这似乎有点多余。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,并且每当未选择的课程出现时,请务必不要检查,反之亦然,您可以执行以下操作以确保相关性并避免必须解决检查该课程是否已存在的问题:

toggleProduct: (evt) ->
  img = $(evt.currentTarget).find('.image_container')
  img.toggleClass 'unselected'
  $(evt.currentTarget).find('.check_container').toggleClass 'check', not img.hasClass('unselected')