2014-09-20 183 views
-3
<title>Ads</title> 
<script type="text/javascript" src="js/CSP.js"> 
</script> 
</head> 

<body> 
    <div id="imagesDiv"> 
    <img src="images/cvb1.gif" alt="Image Ads" id="oneImage"/> 
    </div> 

</body> 
</html> 

/---- code javascript--/ 

var theImage = document.getElementById("oneImage"); 
    changeAds(); 
    var intNumber = 0; 
    var arrayOfImages = ["images/cvb1,gif","images/cvb2,gif","images/cvb3,gif"]; 
    // starting function ads 
    function changeAds(intNumber){ 
     theImage.setAttribute("src",arrayOfImages[intNumber]); 
     intNumber ++; 
     if (intNumber==arrayOfImages.length){ 
      intNumber=0; 
     } 
} 
    setInterval(changeAds(),2000); 

我做錯了什麼?我甚至嘗試過使用window.onload = function() {changeAds(intNumber)};,但這甚至沒有奏效。 我收到錯誤未知錯誤

「theImage.setAttribute(」 SRC 「arrayOfImages [intNumber]);」 是未定義的。

+0

使用在window.onload,但在電話中刪除從intNumber(intNumber) – mplungjan 2014-09-20 05:27:43

+0

調用'changeAds()'聲明intNumber,arryOfImages – Sam1604 2014-09-20 05:31:23

+0

後功能有具有ID'oneImage'時沒有元素'document.getElementById(「oneImage」)'被執行。 – 2014-09-20 05:31:25

回答

0
  • 你有你的功能要覆蓋一個全局變量 - 從功能刪除intNumber
  • 您有另一個全局變量,您在圖像存在之前設置。
  • 還您呼叫的setInterval的錯誤 - 你需要刪除()

var theImage, 
    intNumber = 0, 
    arrayOfImages = ["images/cvb1,gif","images/cvb2,gif","images/cvb3,gif"]; 
window.onload=function() { 
    theImage = document.getElementById("oneImage"); 
    setInterval(changeAds,2000); 
}  

// starting function ads 
function changeAds(){ 
    theImage.setAttribute("src",arrayOfImages[intNumber]); 
    intNumber ++; 
    if (intNumber==arrayOfImages.length){ 
     intNumber=0; 
    } 
} 
+0

但'theImage'仍然是未定義的。 – 2014-09-20 05:32:22

+0

固定。謝謝... – mplungjan 2014-09-20 05:33:38

+0

另外,如果腳本在頭文件中定義,'getElementById(「oneImage」)'將返回null,因爲dom元素尚未創建。你應該改變'changeAds()' – 2014-09-20 05:38:15

1

也有一些是在你的文章中,我無法理解。所以我做了一個演示,以實現你的follow.It效果很好。

This is JSFiddle.
這包括在由功能window.onload = function(){}我的JavaScript。多加註意intNumber

var theImage = document.getElementById("oneImage"); 
changeAds(); 
var intNumber = 0; 
function changeAds() { 

    var arrayOfImages = [ 
    "http://img2.zol.com.cn/product/91/15/ces2fuhxjcejw.jpg", "http://img2.zol.com.cn/product/91/19/ce6ND3v9hwMpY.jpg", 
    "http://img2.zol.com.cn/product/91/18/ce2Ta7Kez9P.jpg"]; 
    // starting function ads 

    theImage.src = arrayOfImages[intNumber]; 
    intNumber++; 
    if (intNumber == arrayOfImages.length) { 
    intNumber = 0; 
    } 

} 
setInterval(changeAds, 1000); 
+0

無需自行調用changeAds()。 – mplungjan 2014-09-20 06:10:02