如何将其变成实时 jquery 切换(coffeescript)?
$('.link').toggle(
-> $(this).text('less'); $('.entry').css('height', 'auto'),
-> $(this).text('more'); $('.entry').css('height', '300px')
)
我已经尝试将它包装在一个实时函数中,但它只会触发第一个事件,并且不会切换回来。
如何将其变成实时 jquery 切换(coffeescript)?
$('.link').toggle(
-> $(this).text('less'); $('.entry').css('height', 'auto'),
-> $(this).text('more'); $('.entry').css('height', '300px')
)
我已经尝试将它包装在一个实时函数中,但它只会触发第一个事件,并且不会切换回来。
您是否尝试过使用 .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
)
我认为它不起作用的原因是因为每次您使用 .on 或 .live 单击 .link 时,它都会重新初始化一个新的 .toggle 事件,因此您总是会调用 .toggle 中的第一个函数。如果您为 .toggle 设置一次用户第一次点击它的事件,这可能会解决您的问题。