为什么JQuery live()工作而delegate()不工作?

时间:2011-11-30 12:06:17

标签: javascript jquery html onclick

我正在处理的代码太复杂,所以我无法在此处粘贴代码。

但我遇到的情况是: .js文件包含在两个不同的htmls中,
在一个html中,delegate()起作用,但在另一个html中没有效果 然后我用delegate()替换live(),然后在两个html中都运行正常。

我只是好奇为什么会发生这种情况..
可能是因为我在两个htmls中包含了太多不同的js文件,可能会引起一些冲突?

1 个答案:

答案 0 :(得分:3)

当你将()委托给某个元素时,你必须重新调用,当你调用委托时,该元素必须存在于dom中。

所以如果你打电话

 $('#mycontainer').delegate(....

必须存在具有id mycontainer的元素,否则delegate()将不起作用。导致一些开销的一种解决方法是委派给documentbody

 $('body').delegate()

Live()始终有效,因为实际上你是委托给身体的。