为什么jquery live()在委托()不工作时工作?

问题描述:

我正在处理的代码太复杂了,所以我无法在这里粘贴我的代码。为什么jquery live()在委托()不工作时工作?

但我遇到的情况是taht:包括在两个不同的HTMLS,
在一个HTML的delegate()工作,但在对方只是没有影响 .js文件。
然后,我用live()替换delegate(),然后在两个html中工作正常。

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

+0

你能给我们一些这两个例子的代码? –

+0

您是否正在通过AJAX在其他页面上重新载入您设置了委托()的选择器,因为这可能是它不起作用的原因 – TommyBs

+0

这是一个太理论化的问题。如果你提供了js和html文件的最小版本,这将是非常有用的,所以我们可以看看。 – kubetz

你不得不暗示,当你委托()一些元素,当你调用委托时,该元素必须出现在dom中。

所以,如果你

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

与ID myContainer中的元素必须存在,否则委托()将无法工作。一个解决办法,导致一些开销委托给document或到body

$('body').delegate() 

直播()总是工作,因为现实中你是委托给身体。

+0

谢谢!我认为第一点可能是原因。我认为delegate()只是live()的一个更高效的替代。我没有注意到delegate()需要已经设置的元素。 – Aloong