1

我的 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 调用在加载时更新,该调用在匹配时提供 div#slider。这使它nivoSlider()无法执行。你有什么技巧可以让这件事发挥作用吗?我确实更喜欢使用非 jquery 方式解决它,但归根结底,任何事情都有帮助。

非常感谢

网页在这里

4

2 回答 2

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
     });
于 2011-03-21T12:14:04.703 回答
0

您不想使用 $(document) 而不是 $(window) 吗?

    $(窗口).load(函数() {
        $('#slider').nivoSlider();
    });

或速记

    $(函数(){
        $('#slider').nivoSlider();
    });

于 2011-03-21T12:22:15.033 回答