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

我通过使用成功加载内容

jQuery(".menu li a").click( function(event){ jQuery("#loadingArea").load(this.href) }); 

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

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

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

谢谢,

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

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

来自文档:

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

 jQuery(".menu li a").click( function(event){ jQuery("#loadingArea").load(this.href); }); jQuery("#loadingArea a").live('click', function() { /* Insert eMagic! */ }); 

你必须使用.live()或.delegate()

所以ajax加载的内容也被委托了

.live()现已删除

这就是现在的方法:

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

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

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

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

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