Jquery 从已加载内容的内部触发并加载新内容

Jquery 从已加载内容的内部触发并加载新内容,jquery,ajax,jquery-load,Jquery,Ajax,Jquery Load,我正在尝试加载一些内容,这是通过单击id为的标记触发的,该标记已经在加载的内容中 现在我使用这个(下面的)来加载内容,首先运行一个nivo滑块,然后是我在尝试加载新内容时遇到问题的位 $(document).ready(function() { $("#pegasus-tile, #o-w").click(function(){ $("#proj-content").load("projects/pegasus.html", function(){ $('<div

我正在尝试加载一些内容,这是通过单击id为的标记触发的,该标记已经在加载的内容中

现在我使用这个(下面的)来加载内容,首先运行一个nivo滑块,然后是我在尝试加载新内容时遇到问题的位

$(document).ready(function() {
$("#pegasus-tile, #o-w").click(function(){
    $("#proj-content").load("projects/pegasus.html", function(){

        $('<div id="slider" class="nivoSlider"></div>');
        $('#slider').nivoSlider({effect: 'sliceUpDown'}),

    $("#next-pegasus").click(function(){
        $("#proj-content").load("projects/bg-app.html");        

        });
      });
   });
}); 
$(文档).ready(函数(){
$(“#飞马座瓷砖,#o-w”)。单击(函数(){
$(“#proj content”).load(“projects/pegasus.html”,function()){
$('');
$('#slider').nivoSlider({effect:'sliceUpDown'}),
$(“#下一个飞马座”)。单击(函数(){
$(“#项目内容”).load(“projects/bg app.html”);
});
});
});
}); 

在下一个
之前运行
.empty
。加载

$(document).ready(function() {
    $("#pegasus-tile, #o-w").click(function(){
        $("#proj-content").empty().load("projects/pegasus.html", function(){
            $('<div id="slider" class="nivoSlider"></div>');
            $('#slider').nivoSlider({effect: 'sliceUpDown'}),
    $("#next-pegasus").click(function(){
        $("#proj-content").empty().load("projects/bg-app.html");        

        });
      });
   });
}); 
$(文档).ready(函数(){
$(“#飞马座瓷砖,#o-w”)。单击(函数(){
$(“#proj content”).empty().load(“projects/pegasus.html”,function()){
$('');
$('#slider').nivoSlider({effect:'sliceUpDown'}),
$(“#下一个飞马座”)。单击(函数(){
$(“#proj content”).empty().load(“projects/bg app.html”);
});
});
});
}); 
看看.live()函数

您的代码不起作用,因为id为next pegasus的元素是动态添加的,并且是默认的。单击()-侦听器无法“查看”此元素。 要使其正常工作,请实现#next pegasus元素的click Listener,如下所示:

$('#next-pegasus').live('click', function() {
    // do the same stuff here ...
});
编辑:


请改用.on()-函数,因为.live()已被弃用。

不要使用
.live
,它已被弃用,请使用
。在
@CD smith上,谢谢,我刚刚在jquery网站上读到“从jquery 1.7开始,.live()方法已被弃用。使用.on()附加事件处理程序。较旧版本的jquery用户应使用.delegate()优先于.live()看看你上面的帖子,你能解释一下.on和.empty之间的区别吗?
.empty
在下一个
.load
之前清空元素的内容。因此,如果元素中有文本,
.empty
确保内容不会被删除,我实现了这两个awnser,但它们似乎没有工作,我将要把它构建到一个JSFIDLE中,也许网站上运行的其他东西正在限制它。所以我将构建一个干净的版本来测试它。好的,发布FIDLE如果你想让我看看它在制作FIDLE时我遇到了一个问题,我必须从原始网站请求加载的内容,但这似乎不是我想要的工作。如果我只是把内容隐藏在页面上,它就不会在同一个庄园里工作了?你知道处理这个问题的最佳方法是什么吗,从外部网站调用内容?(到目前为止的小提琴,我到目前为止制作的小提琴)是的,我知道这会是一个问题:-)我建议使用原始功能,将它剥离为只做一件事,并对其进行调试,以了解幕后发生了什么,然后一次添加一件,最终使其工作!不确定它是什么,但我从头开始重建并使用上面的代码,因为它的工作方式(即清空然后加载)是一个“跳跃”,因为在新的div之前,你会看到清空的div。使用.on()修复了这个问题,假设它使动态添加的元素以不同的方式可见?