2017-06-20 44 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>