我不确定如何构建以下内容。这很好用:
$('.hover li').on 'hover', (ev) ->
$(this).addClass('active')
我知道我可以使用'toggle'而不是'addClass',但由于其他原因,我需要传递处理程序输出函数。所以我尝试了这个:
$('.element').on 'hover', (ev)
-> $(this).addClass('active'),
-> $(this).removeClass('active')
这会返回错误 - “意外”。我尝试了其他变体,我在网上找到的大多数示例都不使用.on 'hover' (ev) ->
格式。
答案 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。