为什么jQuery live()不起作用?

时间:2010-08-17 13:43:21

标签: javascript live jquery

我有以下代码可以正常工作:

$('.ui-selectmenu-menu a').click(function() { alert('OK'); });

但是,如果我将其替换为:

$('.ui-selectmenu-menu a').live('click', function() { alert('OK'); });

它不起作用。

可能是什么原因?

(在我的情况下,$('.ui-selectmenu-menu a')元素可以在运行期间被删除并再次添加。)

2 个答案:

答案 0 :(得分:1)

如果班级发生变化,例如父母没有class="ui-selectmenu-menu然后选择器将不再匹配,请确保在您拥有任何事件后不会发生这种情况。

与直接绑定到元素不同,选择器不再匹配将阻止.live()处理程序触发该元素的事件。

答案 1 :(得分:1)

尼克的回答是有道理的。但是,请检查您是否拥有jquery 1.3或更高版本。 在jquery 1.3版中添加了.live()