【问题标题】:Add class to dynamically added element [duplicate]将类添加到动态添加的元素[重复]
【发布时间】:2015-01-09 20:34:25
【问题描述】:

我在与我的页面不同的文件中有一个共享的左侧菜单,以便我可以在一个地方对其进行更新。

我正在将它加载到 .js 文件中的页面上,如下所示:

$(function () {
    $("#left-nav").load("templates/left-nav.html", function() {
        ...
    });

    ...
}

我希望能够为要选择的页面设置导航列表项。像这样的:

$("#calendar").addClass("selected");

...其中 #calendar 是我的 left-nav.html 模板文件中列表项的 ID。

我读过的所有内容都说我必须在加载文件后调用 addClass 作为回调,但以下内容似乎不起作用:

$(function () {
    $("#left-nav").load("templates/left-nav.html", function() {
        $("#calendar").addClass("selected");
    });

    ...
}

问题:是否可以为页面上动态添加的内容添加类,如果可以,我应该怎么做?谢谢!

【问题讨论】:

  • 您确定结果中有 ID 为 calendar 的元素吗?在您的文字中,您说 ID 是 #calendar 我只是想确认这是一个错字,您的意思是查询是 #calendar 而 ID 是 calendar
  • 加载模板后,在控制台,$('#calendar').length 输出什么?
  • 你能发templates/left-nav.htmlHTML吗?
  • load() 回调在请求成功后立即触发,不一定在内容加载后触发。考虑使用get()complete 函数。 api.jquery.com/jquery.get
  • 上帝保佑美国。 @Shriike 发现了我的错误。解决了它 - 谢谢!

标签: javascript jquery dynamic addclass dynamic-content


【解决方案1】:

代码是正确的,加上left-nav.html确实包含一个ID为calendar的元素。

根据 jQuery 文档将 HTML 添加到 DOM 后触发完成事件。

【讨论】:

    猜你喜欢
    • 2021-06-15
    • 2018-04-05
    • 2018-12-25
    • 2011-07-05
    • 1970-01-01
    • 2018-08-21
    • 2020-11-10
    • 2012-08-17
    • 2014-09-03
    相关资源
    最近更新 更多