我正在处理的代码太复杂,所以我无法在此处粘贴代码。
但我遇到的情况是:
.js文件包含在两个不同的htmls中,
在一个html中,delegate()
起作用,但在另一个html中没有效果
然后我用delegate()
替换live()
,然后在两个html中都运行正常。
我只是好奇为什么会发生这种情况..
可能是因为我在两个htmls中包含了太多不同的js文件,可能会引起一些冲突?
答案 0 :(得分:3)
当你将()委托给某个元素时,你必须重新调用,当你调用委托时,该元素必须存在于dom中。
所以如果你打电话
$('#mycontainer').delegate(....
必须存在具有id mycontainer的元素,否则delegate()将不起作用。导致一些开销的一种解决方法是委派给document
或body
:
$('body').delegate()
Live()始终有效,因为实际上你是委托给身体的。