5

我不确定如何构建以下内容。这工作正常:

  $('.hover li').on 'hover', (ev) ->
    $(this).addClass('active')

我知道我可以使用“toggle”而不是“addClass”,但由于其他原因,我需要传递一个处理程序输出函数。所以我尝试了这个:

  $('.element').on 'hover', (ev)
    -> $(this).addClass('active'),
    -> $(this).removeClass('active')

这将返回一个错误 - 'unexpected ,'。我尝试了其他变体,并且我在网上找到的大多数示例都没有使用该.on 'hover' (ev) ->格式。

4

3 回答 3

8

on()如果您想一次附加两个事件处理程序,则不能用于此。

You need to use hover():

$('.element').hover(
  (ev) -> $(this).addClass 'active'
  (ev) -> $(this).removeClass 'active'
)

or even better, utilizing toggleClass()

$('.element').hover (ev) -> $(this).toggleClass 'active'
于 2012-06-10T15:33:03.373 回答
1

jQuery 的切换功能需要两个功能,我认为这就是您所追求的:

$('.element').toggle 'hover', 
    (ev) -> 
        $(this).addClass('active')
        # Do other stuff...
    (ev) -> 
        $(this).removeClass('active')
        # Do other stuff...
于 2012-06-10T15:11:37.383 回答
-4
$('.element').on 'hover', (ev) ->
  $(this).addClass('active').removeClass('active')

应该这样做。虽然我不明白。您添加活动类,然后将其删除。尽管如此,上面的代码至少是有效的咖啡脚本。

于 2012-06-10T15:09:11.893 回答