【问题标题】:jQuery AJAX - target loaded contentjQuery AJAX - 目标加载的内容
【发布时间】:2011-07-28 19:50:15
【问题描述】:

如何使用 jQuery 定位动态加载的内容?我已经阅读了很多,发现 .live() 函数是一种向加载的内容添加事件的简单方法,但我不确定如何在加载的内容中定位对象。我在主页上有一个容器:

<div id="container">place to load content</div>

和加载页面上的一个容器:

<div id="ajax-container">
    <div id="stuff">
        <div class="random-class">stuff to be loaded</div>
        <div class="random-links"><a href="#" class="delete">delete me</a></div>
    </div>
</div>

我有一个“删除”类的链接,我想用它来删除#stuff。我发现 jQuery 将忽略较新的内容,因此我无法将事件附加到该锚点。我发现了 .live() 函数,它解决了我的点击问题。

$('.delete').live('click', function() {
    alert('click event works');
    $(this).parent('#stuff').hide();
});

警报会触发,但我怎样才能同时定位 div#stuff?

【问题讨论】:

  • 为什么不$("#target").hide();
  • 我需要学习阅读。无论如何,如果您阅读 parent() 上的 jquery api,它将让您知道 parent() 仅适用于祖先的第一层。由于#stuff 是 2 层,因此它不起作用。如果你不想做 3nigma 建议使用 parents() 或更有效的最接近会更好的工作

标签: ajax target jquery


【解决方案1】:
$('.delete').live('click', function() {
    alert('click event works');
    $(this).closest('div#stuff').hide();
});

这是小提琴http://jsfiddle.net/5tCZH/

【讨论】:

    【解决方案2】:

    不确定我是否理解,但$('#stuff') 将为您获取该 Div 的 jQuery 对象,无论您在哪里调用它。 (失去this.parent)

    【讨论】:

      【解决方案3】:

      根据您的代码: 使用 .parent() 只会在 DOM 树中向上移动一层。而是尝试使用.parents() 方法向上移动多个级别。

      【讨论】:

        猜你喜欢
        • 2013-08-06
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多