我使用jQuery的作为使.live()是否需要选择器才能启动?
$('.mybutton').live('click', function(){
// do something
});
当文档准备好,但是当文档准备好有正在使用“myButton的”类,但如果用户点击某处一种新的形式出现使用这种被称为类'mybutton'的按钮。但是,这似乎并没有工作,它没有所需的处理程序。
这是因为在那里没有'mybutton'类开始在文档准备好?
我使用jQuery的作为使.live()是否需要选择器才能启动?
$('.mybutton').live('click', function(){
// do something
});
当文档准备好,但是当文档准备好有正在使用“myButton的”类,但如果用户点击某处一种新的形式出现使用这种被称为类'mybutton'的按钮。但是,这似乎并没有工作,它没有所需的处理程序。
这是因为在那里没有'mybutton'类开始在文档准备好?
如果live()
以往似乎并不为具有适当的选择,像你的情况.mybutton
元素的工作,很可能是因为一些祖先元素.mybutton
正在防止冒泡发生。
如果任何祖先一个.mybutton
有:
return false;
或:
event.stopPropagation();
这将有效地禁用.live()
为.mybutton
因为.live()
了需要的情况下,以泡一路根。
@Jas - 好。感谢您纠正我的拼写错误。 :o) – user113716 2010-09-20 15:08:12
这似乎解决了这个问题,对不起早些时候不接受答案,互联网问题看到:) – wiggles 2010-09-21 19:30:17
@wiggles - 没问题。 :o)很高兴为你解决。 – user113716 2010-09-21 19:34:56
编辑:好的,我明白了你的问题。
这更多地回答“是否选择器始终需要live()
?”。
是的。
请参阅此wiki page的注意事项部分。
jquery.live()需要选择器的原因是explained here。
也许你可以代替试试这个:
$('#myForm').delegate('.mybutton', 'click', function() {
// do something.
})
$()。live应该不依赖于与选择器匹配的元素的存在或其他方面。这意味着你的问题可能在你的实现中。你可以发布你的代码/链接到你的代码? – lonesomeday 2010-09-20 14:44:09
你可以使用'live'外部文件准备好。它在窗口上添加了一个事件监听器,每次启动该操作时都会检查您的jQuery选择器。 – BrunoLM 2010-09-20 14:45:40