1

我正在使用 jquery load() 来显示我网站上的所有文档。我在 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 时它不起作用......有什么想法吗?谢谢你。

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

编辑:

从 home.html 中删除 document.ready 并将其保存在 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 回答