在jquery幻燈片展示擴展之後,我創建了自己的更適合我的目的(我不喜歡所有需要加載的圖像)。現在,升級到jQuery 1.4.2(我知道我遲到了),幻燈片加載第一個圖像罰款(從線$('div#slideshow img#ssone').fadeIn(1500);
朝底部),但除此之外不做任何事情。有沒有人有任何想法,哪個jQuery構造正在殺死我的腳本?實時頁面位於lplonline.org,暫時使用1.3.2。提前致謝。jquery 1.4.1打破我的幻燈片
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>
1)你能解釋爲什麼我不能做一個功能,然後像我這樣稱呼它? (我更熟悉php,所以也許這裏有一些不同......) 2)再一次,有趣的想法不使用元素#id,而是使用#id。在CSS中,最好使用div#id,因爲它限制了需要搜索該id的內容。 JavaScript(或jQuery)不同? 3)最後,我做了你提出的範圍改變,但這似乎並沒有解決問題。 – JakeParis 2010-06-09 20:05:07
這是因爲setInterval在該匿名函數的範圍內運行NOT。 'to'setInterval的調用是,但不是結果間隔。當你發送一個引用(變量=函數)時,它保存鏈接。 2)我的提示是爲jQuery和CSS - (https://developer.mozilla.org/en/Writing_Efficient_CSS)。沒有必要'搜索'的id - 只有一個3)我會做另一個測試 – 2010-06-09 20:11:36
或許我錯了關於函數引用,因爲它適用於jsfiddle 1.4.2:http:// jsfiddle .NET/kPG9Z / – 2010-06-09 20:17:53