jquery 1.26 中是否有另一个函数可以代替 live() ?
$('#content').find('p:eq(0)').append('<span class="more"> | more</span><span class="less"> | less</span>')
$('p:gt(0)').hide();
$('.more, .less').live('click', function() {
$('#content').find('p:gt(0)').slideToggle();
$('.more, .less').toggle();
})
jquery 是 1.26,它不支持 live()
函数。有没有其他功能可以代替它。或者修改代码来达到效果?
我使用 drupal-6,如果我不想升级 jquery。有办法达到效果吗?
$('#content').find('p:eq(0)').append('<span class="more"> | more</span><span class="less"> | less</span>')
$('p:gt(0)').hide();
$('.more, .less').live('click', function() {
$('#content').find('p:gt(0)').slideToggle();
$('.more, .less').toggle();
})
the jquery is 1.26, it haven't have a suppport to the live()
function. is there another function can instead of it. or alter the code to get the effect?
i using drupal-6, if i don't want to upgrade the jquery. is there a way to get the effect?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以向
.content
添加普通的click
处理程序,然后检查是否$(e.target).is('.more, .less').
这就是
live()
内部的工作原理。You can add a normal
click
handler to.content
, then check whether$(e.target).is('.more, .less')
.This is how
live()
works internally.jQuery 1.26 中没有
.live()
,因此您必须寻找 livequery 。there is no
.live()
in jQuery 1.26, so you must be looking for livequery.附加跨度后,您可以使用 $('.more').bind('click',function() { etc }) 但是除非您之前添加了可点击元素,否则您无法在 document.ready 上声明 .bind 方法。
After you append the span, you can use $('.more').bind('click',function() { etc }) But you cant declare the .bind method on document.ready unless you added the clickable element before.