Coffeescript直播切换

时间:2012-09-18 13:05:05

标签: jquery coffeescript

如何将其转换为实时jquery切换(coffeescript)?

$('.link').toggle(
  -> $(this).text('less'); $('.entry').css('height', 'auto'),
  -> $(this).text('more'); $('.entry').css('height', '300px')
)

我试过在实时函数中包装它,但它只会触发第一个事件,并且不会切换回来。

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用.on,我假设.link是动态插入DOM的,对吗?

var hasToggle = false

$('body').on('click', '.link', (e) ->
  unless hasToggle
    $(@).toggle(
      -> 
        $(@).text('less')
        $('.entry').css('height', 'auto')
      ->
        $(@).text('more')
        $('.entry').css('height', '300px')
    )
  hasToggle = true
)

我认为它不起作用的原因是因为每次你点击.link与.on或.live重新初始化一个新的.toggle事件,所以你总是要调用.toggle中的第一个函数。如果您在第一次点击它时为.toggle设置了一次可以解决问题的事件。