jQuery如何与ajax加载的内容进行交互?

时间:2011-07-13 17:51:38

标签: jquery ajax

我通过

成功加载内容
jQuery(".menu li a").click( function(event){

    jQuery("#loadingArea").load(this.href)

});

加载内容后,我的页面中有新元素。我试图应用jQuery操作(当我点击或悬停鼠标时执行某些操作),元素没有响应。

请向我解释为什么我无法触发通过ajax加载的内容中的事件?

方法.load()是否与此有关(即如果我使用了$ .ajax,我将能够与这些内容进行交互)?

谢谢,

6 个答案:

答案 0 :(得分:3)

jQuery(".menu li a").click( function(event){

    jQuery("#loadingArea").load(this.href);

});

jQuery("#loadingArea a").live('click', function() {

    /* Insert eMagic! */

});

答案 1 :(得分:2)

您必须使用.live().delegate()

所以也加载了ajax加载的内容

答案 2 :(得分:2)

.live()现已删除

现在就是这样做的方式:

$(document).on("click",".menu li a",function(e){

});

答案 3 :(得分:0)

.live()是您问题的答案:

http://api.jquery.com/live/

来自文档:

  

.live()方法能够影响尚未存在的元素   通过使用事件委托添加到DOM:处理程序绑定   祖先元素负责触发的事件   它的后代。传递给.live()的处理程序永远不会绑定到   元件;相反,.live()将一个特殊的处理程序绑定到。的根   DOM树。

答案 4 :(得分:0)

你应该为ajax加载的内容使用实时事件处理程序

$("a").live("click",function(){
// your code
});

live将事件绑定到未来元素以及现有元素。

答案 5 :(得分:0)

.live().delegate()会在这里为您提供帮助。 因为新的元素在启动时不存在,当你绑定函数时将不会应用。通过live(),事件会冒泡,你可以将事件绑定到它