2012-05-05 25 views
0

我在JS真正的菜鳥,我有這樣的代碼,在我的HTML的身體:的Javascript從身體到js文件

var secDuration = 5; 
    var image = 1; 
    var maxImages = 4; 
    var slider = document.getElementById('slider'); 

function changeImage(requiredImage) { 


    if (!requiredImage && requiredImage != 0){ 
     if(image < maxImages){ 
     image++; 
     } 
     else{ 
     image = 1; 
     } 
    } 
    else{ 
     if(requiredImage > maxImages){ 
     image = 1; 
     } 
     else if(requiredImage < 1){ 
     image = maxImages; 
     } 
     else{ 
     image = requiredImage; 
     } 
    } 
    slider.className = "image"+image; 

    clearTimeout(timeout) 
    } 

    function nextImage(){ 
    changeImage(image+1); 
    } 
    function prevImage(){ 
    changeImage(image-1); 
    } 

    changeImage(1); 

麻煩的是,當我把它粘貼到一個js文件,我正確連接到我的HTML,腳本不再工作。 我嘗試了幾種解決方案,但我想可能缺少一些東西。很高興感謝幫助。

在此先感謝。

+0

告訴我們,你究竟是怎麼做到的。因爲它可能沒有正確完成;) – Imp

+0

您是否收到錯誤?當你說''這個腳本不再工作'的時候,用你的意思解釋一點。 – jaredhoyt

回答

0

JavaScript文件的有效嵌入是:

<html> 
<head> 
    ... 
    <script type="text/javascript" src="/path/to/script.js"></script> 
</head> 
<body> 
    ... 
</body> 
</html> 

確保您已經以同樣的方式進行。

然後,你必須從你的HTML頁面元素,工作時,你的頁面完全加載,所以動如document.getElementById語句window.onload方法:

window.onload = function() { 
    slider = document.getElementById('slider'); 
}; 

所以,你的更新腳本應該是這樣的:

var image = 1; 
var maxImages = 4; 
var slider; 

function changeImage(requiredImage) { 
    if (!requiredImage && requiredImage != 0) { 
     if (image < maxImages) { 
      image++; 
     } 
     else { 
      image = 1; 
     } 
    } 
    else { 
     if (requiredImage > maxImages) { 
      image = 1; 
     } 
     else if (requiredImage < 1) { 
      image = maxImages; 
     } 
     else { 
      image = requiredImage; 
     } 
    } 
    slider.className = "image" + image; 

    clearTimeout(timeout) 
} 

function nextImage() { 
    changeImage(image + 1); 
} 

function prevImage() { 
    changeImage(image - 1); 
} 

window.onload = function() { 
    slider = document.getElementById('slider'); 
    changeImage(1); 
};​ 
+0

是的,這是我所做的: +我剛剛修改了最後一行,但仍然沒有任何移動。 可能還有其他的東西 – user1376946

+0

我強烈建議腳本在身體盡頭加載,如果可能的話。有關更多信息,請參閱這些[最佳實踐](http://developer.yahoo.com/performance/rules.html#js_bottom)。 – jaredhoyt

+0

是的,我只是假設,這將是更實際的以後使用可能分開不同類型的代碼,使我的網站更「有組織」 – user1376946

相關問題