.live()需要一个选择器来开始吗?

时间:2010-09-20 14:40:11

标签: jquery

我正在使用jquery

$('.mybutton').live('click', function(){
   // do something
});

当文档准备就绪时会调用它,但是当文档准备就绪时,会使用“mybutton”类,但如果用户单击某处,则会出现一个新表单,其中使用了带有“mybutton”类的按钮。但这似乎不起作用,它没有所需的处理程序。

这是因为没有“mybutton”类可以在文档准备好的时候开始吗?

3 个答案:

答案 0 :(得分:1)

如果live()似乎对具有正确选择器的元素不起作用,例如.mybutton,则可能是因为.mybutton的某些祖先元素是防止冒泡发生。

如果 .mybutton的任何祖先有:

return false;

或:

event.stopPropagation();

这将有效禁用.live()的{​​{1}},因为.mybutton需要事件一直冒泡到根目录。

答案 1 :(得分:0)

编辑:好的,我误解了你的问题 这更像是“live()是否始终需要选择器?”的答案。


是。
请参阅此wiki page上的警告部分。

jquery.live()需要选择器的原因是explained here

答案 2 :(得分:0)

也许你可以试试这个:

$('#myForm').delegate('.mybutton', 'click', function() {
   // do something.
})