2017-06-20 83 views
2

出於某種原因,我一直在我的javascript文件中有一行出現以下錯誤(我在下面指出了該行)。這是我的HTML:創建手動幻燈片時出錯

<div class="slideshowproject"> 
    <button id="rightbutton" onclick=manualslideshow("rightbutton,projectslides1")>></button> 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 2-1.jpg"> 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 3-1.jpg"> 
    <button id="leftbutton" onclick=manualslideshow("leftbutton","projectslides1")><</button> 
    <script>manualslideshow("","projectslides1")</script> 
</div> 

和我的javascript:

var imagenumber=0; 
function manualslideshow(buttonid,slideshowclass){ 
    var pictures=document.getElementsByClassName(slideshowclass); 
    for (i=0;i<pictures.length;i++){ 
     pictures[i].style.display="none"; 
    } 
    if (buttonid=="rightbutton"){ 
     imagenumber++; 
    } 
    else if (buttonid=="leftbutton"){ 
     imagenumber--; 
    } 
    if (imagenumber>pictures.length){ 
     imagenumber=1; 
    } 
    if (imagenumber<1){ 
     imagenumber=pictures.length; 
    } 
    pictures[imagenumber-1].style.display="block"; 
} 

出於某種原因, 「.style.display = 」塊「;」在腳本的最後一行得到的錯誤:

navigationbar.js:68 Uncaught TypeError: Cannot read property 'style' of undefined 
    at manualslideshow (navigationbar.js:68) 
    at HTMLButtonElement.onclick (clinic.html:42) 

的Javascript線68的最終封閉大括號前的最後線與線42 HTML是「rightbutton」行(HTML中的第2行復制)

謝謝你的所有幫助和時間。

+0

檢查索引是否存在,你傳遞給圖片[imagenumber-1] –

+0

我忘了在帖子中提到,左鍵完美無瑕。只有正確的按鈕會引發錯誤。我嘗試用[1]替換[imagenumber-1]來測試它,但右按鈕給出了相同的錯誤,而左按鈕沒有給控制檯帶來任何錯誤,也沒有改變圖像(因爲我們只是看着陣列的第二個位置) – Sal

回答

2

看着你的代碼,我可以從Html文件中調用'manualslideshow'方法時看到一個錯誤。 (即行號42)。 請參閱下面的代碼。我已經改變從 ( 「rightbutton,projectslides1」)( 「rightbutton」, 「projectslides1」)

<div class="slideshowproject"> 
    <button id="rightbutton" onclick=manualslideshow("rightbutton","projectslides1")>></button> 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 2-1.jpg"> 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 3-1.jpg"> 
    <button id="leftbutton" onclick=manualslideshow("leftbutton","projectslides1")><</button> 
    <script>manualslideshow("","projectslides1")</script> 
</div> 
+0

是的......就是這樣......我很驚訝我錯過了這樣一個小小的錯誤......非常感謝您的幫助! – Sal

+0

@Raj極大的努力。 –

+0

@Sal很高興幫助你。謝謝代碼愛好者 – Raj

1

調用manualslideshow功能時,有一些錯誤:

var imagenumber=0; 
 

 
function manualslideshow(buttonid,slideshowclass){ 
 
    var pictures=document.getElementsByClassName(slideshowclass); 
 
    for (i=0;i<pictures.length;i++){ 
 
     pictures[i].style.display="none"; 
 
    } 
 
    if (buttonid=="rightbutton"){ 
 
     imagenumber++; 
 
    } 
 
    else if (buttonid=="leftbutton"){ 
 
     imagenumber--; 
 
    } 
 
    if (imagenumber>pictures.length){ 
 
     imagenumber=1; 
 
    } 
 
    if (imagenumber<1){ 
 
     imagenumber=pictures.length; 
 
    } 
 
    pictures[imagenumber-1].style.display="block"; 
 
} 
 

 
manualslideshow("","projectslides1")
<div class="slideshowproject"> 
 
    <button id="rightbutton" onclick=manualslideshow("rightbutton","projectslides1")>></button> 
 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg"> 
 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 2-1.jpg"> 
 
    <img class="projectslides1" src="Project Images\\HarrisonHealthClinic\\Render 3-1.jpg"> 
 
    <button id="leftbutton" onclick=manualslideshow("leftbutton","projectslides1")><</button> 
 

 
</div>