2

我正在尝试从 ajax 加载一个 flexslider。当我直接指向包含滑块的页面时它可以工作,但是从 ajax 滑块不会加载。

这是我的ajax页面:

$(document).ready(function(){

//Ajax Event Handler For Categorie Demo
var $menu1 = $('#navDemo02');



function success(){

    $('div.ajaxContent').hide();
  $('div.ajaxContent').show(200);
}

function ajaxCallTimeout(index){
var url = 'categorie/0'+(index+1)+'.php';
 $('div.ajaxContent').load(url, success);
}
function ajaxCategorie(){
    var index = $menu1.find('li a').index(this);
     $('div.ajaxContent').html('<p style="color:#4CC3EC; text-align:center; margin-top:45px;">Loading...<img src="img/loading.gif" /></p>');
    switch(index){
        case 0 :

              $('div.ajaxContent').stop().animate({marginTop: 0}, 1000,'linear', function(){ajaxCallTimeout(index)});
        break;
        case 1 : 

              $('div.ajaxContent').stop().animate({marginTop: 0}, 1000,'linear', function(){ajaxCallTimeout(index)});
        break;
        case 2 : 

              $('div.ajaxContent').stop().animate({marginTop: 0}, 1000,'linear',function(){ajaxCallTimeout(index)});
        break;
        case 3 : 

              $('div.ajaxContent').stop().animate({marginTop: 0}, 1000,'linear', function(){ajaxCallTimeout(index)});
        break;
        case 4 : 

              $('div.ajaxContent').stop().animate({marginTop:0}, 1000,'linear', function(){ajaxCallTimeout(index)});
        break;
        case 5 : 

              $('div.ajaxContent').stop().animate({marginTop: 0}, 1000,'linear', function(){ajaxCallTimeout(index)});
        break;
        case 6 : 

              $('div.ajaxContent').stop().animate({marginTop: 0}, 1000,'linear', function(){ajaxCallTimeout(index)});
        break;


    }
}

$menu1.find('li a').bind('click', ajaxCategorie);

});

这是滑块的脚本

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.min.js">\x3C/script>')</script>

<script defer src="jquery.flexslider.js"></script>

<script type="text/javascript">
 $(function(){
  SyntaxHighlighter.all();
});
$(window).load(function(){
  $('.flexslider').flexslider({
    animation: "slide"
  });
});

有人可以告诉我我缺少什么或指出我的教程吗?

4

1 回答 1

0

您是否在将提到的类加载到 DOM 之前在类上调用 flexslider() 函数?

当您单击链接进行 ajax 调用时,该页面上的 javascript 已经运行。现在,当您进行 ajax 调用时,脚本不会重新运行以再次在新类(已通过 ajax 调用)上分配 flexslider。

如果这是真的,您可以尝试将 flexslider 脚本移动到您正在进行 ajax 调用的页面中。

于 2012-11-28T05:44:22.630 回答