2011-12-03 105 views
0

我有一張圖片,我想每隔2秒更換一次,當我的鼠標在上面時。 所以我寫:調用功能,每2秒更換一次圖片

$("#profilePic").mouseover(function() { 
    var t = setTimeout("pictureChanger()",2000); 
}); 

,這是功能:

function pictureChanger() { 
    currentPicture++; 
    currentPicture = currentPicture % NUM_PICTURES; 
    $("#profilePic").src = pictures[currentPicture]; 
} 

這是行不通的。但是當我寫$("#profilePic").src = pictures[currentPicture];mouseover在函數內部它替換的圖片。所以我想問題是與功能pictureChanger .. 如何修復它,使該功能將取代我的照片?

謝謝!

+0

凡'currentPicture'最初定義?此外,您可能希望'setInterval()'每2秒更改一次圖片,而不是一個'setTimeout' –

+0

的權利。改爲'setInterval()'。 'currentPicture'是全局定義的,所以每次運行'pictureChanger()'我都會記得之前顯示的是哪張圖片。 –

回答

1

使用.attr()功能中的jquery來設置屬性:

$('#profilePic').attr('src', pictures[currentPicture]); 

或者由選擇器獲得來自匹配的元件的陣列的底層DOM元素:

$('#profilePic').get(0).src = pictures[currentPicture]; 

第一是首選,因爲如果選擇器不匹配任何DOM元素,代碼將會中斷,而第一個例子中它不會執行任何操作。

0

嘗試刪除函數名的()和引號中的setTimeout:

var t = setTimeout(pictureChanger,2000);