2011-07-28 223 views
0

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

<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> 

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

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

该警报将触发,但我怎样才能针对div#的东西,以及?

+0

为什么不'$( “#目标”),隐藏();' – Rafay

+0

DOH我需要学习阅读。无论如何,如果你阅读了parent()的jquery api,它会让你知道parent()只能用于祖先的第一层。由于#stuff是2层,因此无法工作。如果你不想做3nigma建议使用父母的方法()或者更有效的方法会更好 – scrappedcola

回答

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

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

1

不知道我明白,但$('#stuff')会为您提供该Div的jQuery对象,无论您在哪里调用它。 (丢失this.parent)

0

根据您的代码: 使用.parent()只在DOM树中上升一级。请尝试使用.parents()方法向上多个层次。