Javascript 为什么JQuery live()工作而delegate()不工作?
我正在处理的代码太复杂了,所以我无法将代码粘贴到这里 但我遇到的情况是: 包含在两个不同HTML中的.js文件,Javascript 为什么JQuery live()工作而delegate()不工作?,javascript,jquery,html,onclick,Javascript,Jquery,Html,Onclick,我正在处理的代码太复杂了,所以我无法将代码粘贴到这里 但我遇到的情况是: 包含在两个不同HTML中的.js文件, 在一个html中,delegate()起作用,但在另一个html中没有任何效果。 然后我将delegate()替换为live(),然后在这两种html中都可以正常工作 我只是好奇为什么会发生这种事 这可能是因为我在两个HTML中包含了太多不同的js文件,可能会导致一些冲突 您必须记住,当您将()委托给某个元素时,调用delegate时,该元素必须存在于dom中 所以如果你打电话 $
在一个html中,
delegate()
起作用,但在另一个html中没有任何效果。然后我将
delegate()
替换为live()
,然后在这两种html中都可以正常工作
我只是好奇为什么会发生这种事
这可能是因为我在两个HTML中包含了太多不同的js文件,可能会导致一些冲突 您必须记住,当您将()委托给某个元素时,调用delegate时,该元素必须存在于dom中 所以如果你打电话
$('#mycontainer').delegate(....
id为mycontainer的元素必须存在,否则delegate()将无法工作。导致一些开销的一种解决方法是将任务委托给文档
或正文
:
$('body').delegate()
Live()总是有效的,因为实际上您是在委托主体。您必须记住,当您将()委托给某个元素时,调用delegate时该元素必须存在于dom中 所以如果你打电话
$('#mycontainer').delegate(....
id为mycontainer的元素必须存在,否则delegate()将无法工作。导致一些开销的一种解决方法是将任务委托给文档
或正文
:
$('body').delegate()
Live()总是有效的,因为实际上您是在向主体授权。您能给我们两个示例的一些代码吗?您是否在另一个页面中通过AJAX重新加载设置delegate()的选择器,因为这可能是它不起作用的原因这是一个理论性太强的问题。如果你能提供js和html文件的最低版本,那将非常有帮助,这样我们可以看一下。我想在这里粘贴一些代码,但是代码太复杂了,html和js文件都有500多行,有很多动态生成的部分,这很难抽象得足够简单。你能给我们两个例子的一些代码吗?你是否在另一页通过AJAX重新加载你设置的delegate()选择器,因为这可能是它不起作用的原因这是一个有点理论性的问题。如果您提供js和html文件的最低版本,这将非常有帮助,因此我们可以看一看。我想在这里粘贴一些代码,但是代码太复杂了,html和js文件都有500多行,有许多动态生成的部分,很难抽象得足够简单。谢谢!我认为第一点可能是原因。我认为delegate()只是live()的一个更有效的替代品。我没有注意到delegate()需要已经设置元素。谢谢!我认为第一点可能是原因。我认为delegate()只是live()的一个更有效的替代品。我没有注意到delegate()需要已经设置元素。