触发并从已经载入的内容中加载新内容

时间:2012-05-23 19:28:56

标签: jquery ajax jquery-load

我试图加载一些内容,这些内容是通过点击已加载内容的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");        

        });
      });
   });
}); 

2 个答案:

答案 0 :(得分:1)

在下一个.empty

之前运行.load
$(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");        

        });
      });
   });
}); 

答案 1 :(得分:1)

查看.live()函数。

您的代码不起作用,因为id为next-pegasus的元素是动态添加的,默认的.click() - Listener无法“看到”此元素。 为了使它工作,实现#next-pegasus元素的click-Listener,如下所示:

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

编辑:

请改用.on() - 函数,因为不推荐使用.live()。