4

我从教程中获取了这段代码,在 javascript/jQuery 中制作了一个自动推进的幻灯片,它在 jsfiddle 中运行得非常好。但是,当我将所有内容都带入 Dreamweaver 时,它似乎就停止了工作。一切都在那里,我已经链接了所有相关文件(.js 和 .css)以及 jQuery 库。出于某种原因,尽管它根本不起作用。这是代码。

的HTML

<div class="fadeIn">
            <img src="image1.png" height="500" width="800"/>
            <img src="image2.png" height="500" width="800"/>
            <img src="image3.png" height="500" width="800"/>
            <img src="image4.png" height="500" width="800"/>
        </div>

CSS

.fadeIn {
    position: relative;
    width: 800px;
    height: 500px;
}

.fadeIn img {
    position: absolute;
    left:0;
    top:0;
}

Javascript/jQuery

$(function(){
    $('.fadeIn img:gt(0)').hide();
    setInterval(function(){
    $('.fadeIn :first-child').fadeOut()
        .next('img').fadeIn()
        .end().appendTo('.fadeIn');
    }, 3000);
});

这是标题

<script src="SlideShow.js" type="text/javascript"></script>
<script src="jquery-1.7.2.min.js" type="text/javascript"></script>

<link rel="stylesheet" type="text/css" href="SlideShow.css">
4

3 回答 3

11

经过快速尝试,我设法重现了您提到的错误。如果你的函数有外部 js 文件,它依赖于其他 JS 库,你必须先加载那个库,然后再加载你的函数的依赖 JS 文件。

例如,这不起作用:

<script src="slideshow.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

因为,JS 解释器搜索 $ before 甚至被加载和定义。

但是,这将起作用:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="slideshow.js"></script>
于 2013-10-18T18:48:56.493 回答
1

确保您正在运行当前版本的 jquery。将其包含在头部

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function(){
    $('.fadein img:gt(0)').hide();
    setInterval(function(){$('.fadein :first-child').fadeOut().next('img').fadeIn().end().appendTo('.fadein');}, 3000);
});
</script>

如果您在 chrome 上右键单击、检查元素、控制台、错误,请检查控制台日志是否有错误。

该代码对我来说看起来不错并且也可以正常工作。

于 2013-10-18T18:10:31.393 回答
0

嗯您需要确保首先加载所有内容才能执行您可以执行的操作

window.onload = function() {
    $(function(){
        ('.fadeIn img:gt(0)').hide();
        setInterval(function(){
        $('.fadeIn :first-child').fadeOut()
          .next('img').fadeIn()
          .end().appendTo('.fadeIn');
        }, 3000);
  });

}

这意味着在 dom 完成加载所有脚本后,它会执行您的函数。

于 2014-08-21T03:07:33.057 回答