加载ajax页面后的jquery load() - howto

时间:2011-03-21 12:08:04

标签: javascript jquery html nivo-slider

我的index.php底部包含以下行:

<script type="text/javascript" language="javascript" src="class/jquery-1.4.3.min.js">  </script>
<script type="text/javascript" language="javascript" src="class/jquery.nivo.slider.pack.js"></script>
<script type='text/javascript' language='javascript'>
    $(window).load(function() {
        $('#slider').nivoSlider();
    });
</script>

问题在于$(window).load ...
index.php的主体通过ajax调用更新onload,它在匹配时提供div#slider。这使nivoSlider()没有执行。你有什么把戏让这件事有用的伎俩吗?我更喜欢非jquery方式,但在一天结束时,任何事情都有帮助。

非常感谢

WEBPAGE IS HERE

2 个答案:

答案 0 :(得分:5)

在AJAX加载的回调中添加调用。

$('.something').load( 'http://www.example.com/foo', function() {
     $(this).find('#slider').nivoSlider();
});

使用代码的示例(用于正文):

$(function() { // run on document ready, not window load
     $('#content').load( 'page.php?c=2&limit=5', function() {
           $(this).find('#slider').nivoSlider();
     });
});

链接:

<!-- updates links like so -->
<a class='nav' href='page.php?category=art&limit=5&c=1'>art</a>

// in the same document ready function
     $('a.nav').click( function() {
          var $link = $(this);
          $('#content').load( $link.attr('href'), function() {
               $(this).find('#slider').nivoSlider();
               $link.addClass('selected'); // instead of setting bg directly to #828282;
          });
          return false; // to prevent normal link behavior
     });

答案 1 :(得分:0)

你不想使用$(文件)而不是$(窗口)吗?


    $(window).load(function() {
        $('#slider').nivoSlider();
    });

或简写


    $(function() {
        $('#slider').nivoSlider();
    });