jquery 1.4.1打破了我的幻灯片

时间:2010-06-09 18:53:28

标签: jquery slideshow jquery-1.4

在使用jquery幻灯片扩展程序玩弄后,我创建了自己的更适合我的目的(我不喜欢在开头加载所需的所有图像)。现在,升级到jQuery 1.4.2(我知道我已经迟到了),幻灯片显示加载第一张图片(从行$('div#slideshow img#ssone').fadeIn(1500);到底部),但除此之外没有做任何事情。有谁知道哪个jquery构造正在杀死我的脚本?实时页面位于lplonline.org,暂时使用1.3.2。提前谢谢。

Array.prototype.random = function( r ) {
var i = 0, l = this.length;
 if( !r ) { r = this.length; }
 else if( r > 0 ) { r = r % l; }
 else { i = r; r = l + r % l; }
 return this[ Math.floor( r * Math.random() - i ) ];
};

jQuery(function($){
    var imgArr = new Array();
    imgArr[1] = "wp-content/uploads/rotator/Brbrshop4-hrmnywkshp72006.jpg";
    imgArr[2] = "wp-content/uploads/rotator/IMGA0125.JPG";
    //etc, etc, about 30 of these are created dynamically from a db

var randImgs = function () {

    var randImg = imgArr.random();
        var img1 = $('div#slideshow img#ssone');
        var img2 = $('div#slideshow img#sstwo');

        if(img1.is(':visible') ) { 
            img2.fadeIn(1500);
            img1.fadeOut(1500,function() {
                img1.attr({src : randImg});
            });


        } else {
            img1.fadeIn(1500);
            img2.fadeOut(1500,function() {
                img2.attr({src : randImg});
            });

        }
}

setInterval(randImgs,9000); //  9 SECONDS

$('div#slideshow img#ssone').fadeIn(1500);

});
</script>

<div id="slideshow">
<img id="ssone" style="display:none;" src="wp-content/uploads/rotator/quote-investments.png" alt="" />
<img id="sstwo" style="display:none;" src="wp-content/uploads/rotator/quote-drugs.png" alt="" />
</div>

2 个答案:

答案 0 :(得分:2)

这是因为你的函数是如何作用域的 - 给它分配一个这样的变量:

var randImgs = function() {
  // do stuff
}

现在你的setInterval引用了正确的函数。

快速说明:div#slideshow(或任何tag / id组合)效率不高。 ID只适用于该元素,所以说“查看所有div并找到...的ID”是不必要的。

然而,使用这种方法,例如div.myClassName这样的类 - 来说'查看所有的div并查找类......'。

与父母/子女一样 - #parent #child - 是额外的工作 - #child可以自己找到。 #parent div.myClassName然而是明智的,因为这有助于缩小对类名为myClassname的div的搜索范围。

答案 1 :(得分:0)

啊哈!我继承了这个网站,似乎网站的原始创建者在标题中调用了大约3或4个不同的js库(scriptalicious,prototype ...)。但实际上并没有使用它们。我把所有这些内容都拿出来了,现在它工作得非常漂亮,所以问题在某种程度上是jQuery和其他一个库之间的交互。无论如何,谢谢Dan Heberden的时间和建议!