.live()的行为与.bind()不同

时间:2011-11-07 15:22:45

标签: javascript jquery

在提出这个问题之后:jQuery die() does not work。我发现live()似乎不像bind()

我有以下一行:

$('.produit').die().live('change',function(){ // the rest
$('.produit').live('change',function(){ // that did not work either

然后我把它改为:

$('.produit').unbind('change').bind('change',function(){ // the rest

这两行之间有什么区别。

在此示例中,.produit动态添加到页面。绑定在prepend()之后完成。

我正在使用jQuery 1.4.2和IE7。

2 个答案:

答案 0 :(得分:2)

如果您使用IE,则实时和change事件

会出现问题

搜索解决此问题的livequery插件。

尝试将事件更改为Click事件,您会发现它有效。

不同之处在于Bind是针对Already In Page元素,live也是+ Future元素。

答案 1 :(得分:2)

Live 的行为与bind类似。这是对的。

Live仅为预定义的操作(例如click或keypress)附加处理程序。使用bind,您可以定义自己的事件并在您认为必要时触发它们。

总而言之,最后使用bind优于live。这就是为什么在最新的jQuery 1.7(你使用)中有一些函数onoff基本上结合了live的功能,{ {1}}和bind