簡體   English   中英

加載ajax頁面后的jQuery load()-howto

[英]jquery load() after ajax page is loaded - howto

我在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的方式,但最終還是有幫助。

非常感謝

網頁在這里

在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
     });

您是否要使用$(document)而不是$(window)?

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

或速記

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM