【问题标题】:jQuery: Later added code via load() is ignored [duplicate]jQuery:稍后通过 load() 添加的代码被忽略 [重复]
【发布时间】:2015-03-08 00:25:37
【问题描述】:

我有这样的功能:

$(".link").click(function (){ ... }

效果很好。

现在我使用 $("#new").load("test.htm");这个html文件包含类似

<a href="#" class="link" data-name="foo">Hello</a>

链接出现,但所有点击都将被忽略。

我确定这与后来添加到 DOM 中的内容有关。

我在这里找到了这个声明,但不知道它是否适用于我的问题:

因为您是在 DOM 完全加载后插入内容,所以您必须使用 .on("click",function(){}) 来实现您的点击功能,因为在您绑定它们时它们不是在 DOM 中可用!

我该如何解决这个问题?谢谢!

【问题讨论】:

  • 嗯,您是否尝试按照您找到的建议进行操作?结果如何?

标签: jquery


【解决方案1】:

当您$(".link").click(function (){ ... } 时,您所做的是选择当前文档中的所有元素 并向它们添加点击事件。你需要使用this 来做你想做的事。

【讨论】:

    【解决方案2】:

    替换

    $(".link").click(function (){ ... }
    

    $("body").on("click", ".link", function (){ ... });
    

    【讨论】:

    • 你真的应该解释一下。这里的想法是教书,而不仅仅是为人们编写代码。
    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多