把这个jquery翻译成咖啡脚本?

时间:2012-06-10 15:06:34

标签: jquery coffeescript

我不确定如何构建以下内容。这很好用:

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

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

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

这会返回错误 - “意外”。我尝试了其他变体,我在网上找到的大多数示例都不使用.on 'hover' (ev) ->格式。

3 个答案:

答案 0 :(得分:8)

如果您想一次附加两个事件处理程序,则无法使用on()

您需要使用hover()

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

甚至更好,利用toggleClass()

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

答案 1 :(得分:1)

jQuery的toggle函数有两个函数,我认为这就是你所追求的:

$('.element').toggle 'hover', 
    (ev) -> 
        $(this).addClass('active')
        # Do other stuff...
    (ev) -> 
        $(this).removeClass('active')
        # Do other stuff...

答案 2 :(得分:-4)

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

应该这样做。虽然我没理解。您添加了活动类,然后将其删除。不过,上述代码至少是有效的coffeescript。