我通过
成功加载内容jQuery(".menu li a").click( function(event){
jQuery("#loadingArea").load(this.href)
});
加载内容后,我的页面中有新元素。我试图应用jQuery操作(当我点击或悬停鼠标时执行某些操作),元素没有响应。
请向我解释为什么我无法触发通过ajax加载的内容中的事件?
方法.load()是否与此有关(即如果我使用了$ .ajax,我将能够与这些内容进行交互)?
谢谢,
答案 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()
是您问题的答案:
来自文档:
.live()方法能够影响尚未存在的元素 通过使用事件委托添加到DOM:处理程序绑定 祖先元素负责触发的事件 它的后代。传递给.live()的处理程序永远不会绑定到 元件;相反,.live()将一个特殊的处理程序绑定到。的根 DOM树。
答案 4 :(得分:0)
你应该为ajax加载的内容使用实时事件处理程序
$("a").live("click",function(){
// your code
});
live将事件绑定到未来元素以及现有元素。
答案 5 :(得分:0)
.live()
或.delegate()
会在这里为您提供帮助。
因为新的元素在启动时不存在,当你绑定函数时将不会应用。通过live(),事件会冒泡,你可以将事件绑定到它