1

jquery load()を使用して、Webサイト上のすべてのドキュメントを表示しています。index.htmlファイルのスクリプトは次のようになります

<script type="text/javascript">
  $(document).ready(function() {
    $('#main-wrap').load("home.html");

    $('#home').click(function() {
      $('#main-wrap').load("home.html");
      return false;
    });

    $('#wilgoc').click(function() {
      $('#main-wrap').load("wilgoc.html");
      return false;
    });
etc...

home.htmlで

$(document).ready(function() {
//$(window).load(function() {
    $('#slider').nivoSlider({effect:'fade', animSpeed:800, pauseTime:5000});
return false;
    });

nivosliderのデフォルトは(window).loadですが、home.htmlを2回目にロードすると機能しません...何かアイデアはありますか?ありがとうございました。

4

1 に答える 1

1

ページは動的に読み込まれているため(#sliderは新しいDOM要素です)、機能していません

$('#home').click(function(e) {
    e.preventDefault();
    $('#main-wrap').load("home.html", function(){
        $('#slider').nivoSlider({effect:'fade', animSpeed:800, pauseTime:5000});
    });
});

編集:

document.readyをhome.htmlから削除し、それをindex htmlファイル内に保持し、home.htmlを次のようにロードするたびにコールバック関数内でプラグインを呼び出します(index.html)

$(document).ready(function() {

    $('#main-wrap').load("home.html", function(){
        $('#slider').nivoSlider({effect:'fade', animSpeed:800, pauseTime:5000});
    });

    $('#home').click(function(e) {
        e.preventDefault();
        $('#main-wrap').load("home.html", function(){
            $('#slider').nivoSlider({effect:'fade', animSpeed:800, pauseTime:5000});
        });
    });
    ...
    ...
});

div内に別の完全なhtmlファイル(html。headなどのタグを含む)をロードしていないことを確認してください。

これを試すことができますか(各行を置き換えてください):

setTimeout(function(){
    $('#slider').nivoSlider({effect:'fade', animSpeed:800, pauseTime:5000});
}, 1000);
于 2012-05-06T17:01:56.853 に答える