JavaScript-图像滑块按钮不工作

JavaScript-图像滑块按钮不工作,javascript,jquery,Javascript,Jquery,我正在学习JavaScript。现在我想制作一个典型的图像滑块,当页面加载自动启动时,如果点击两个按钮中的一个(向前和向后),它会停止自动滑块,并转到我们点击按钮的位置 但是我正在测试的代码没有按钮。我甚至尝试使用jQuery使其工作,但没有成功。我想我把事情搞得一团糟,但代码是这样的: $(函数(){ var slideIndex=0; var i; var s=document.getElementsByClassName(“幻灯片”); var stopslider=false; 滑块(

我正在学习JavaScript。现在我想制作一个典型的图像滑块,当页面加载自动启动时,如果点击两个按钮中的一个(向前和向后),它会停止自动滑块,并转到我们点击按钮的位置

但是我正在测试的代码没有按钮。我甚至尝试使用jQuery使其工作,但没有成功。我想我把事情搞得一团糟,但代码是这样的:

$(函数(){
var slideIndex=0;
var i;
var s=document.getElementsByClassName(“幻灯片”);
var stopslider=false;
滑块();
$(“.change[n]”。单击(函数(){
var slideIndex=1;
var stopslider=true;
$(“slide1”).removeClass(“slide”).addClass(“1slide”);
$(“slide2”).removeClass(“slide”).addClass(“1slide”);
$(“slide3”).removeClass(“slide”).addClass(“1slide”);
$(“slide4”).removeClass(“slide”).addClass(“1slide”);
var s=document.getElementsByClassName(“1slide”);
滑块1索引+=n;
如果(n>s.长度){
slideIndex=1
} 
if(n<1){
slideIndex=s.长度
} ;
对于(i=0;is.length){
slideIndex=1
}
s[slideIndex-1].style.display=“block”;
设置超时(滑块,4000);
如果(停止滑块=真){
clearTimeout(滑块);
} 
}
});

以前的
后者
(有关使用OP原始代码的答案,请参阅my。)

好的。。所以我可能有点过火了:)

问题是,当我刚开始的时候,我和你做的完全一样,用一堆变量来存储进度和当前位置等等

但实际上,所有这些都不是必需的,JavaScript在这方面是非常独特的,因为页面上已经存在“物理”DOM结构,可以引用它而不是使用专用变量。在许多情况下,它们可以充当“变量”,在许多情况下,它们比(全局)变量更受欢迎

总之,我几乎改变了你的整个代码,也可能重命名了过程中的所有内容,去掉了不必要的元素,比如
标记。您可能需要它们,但我希望使代码尽可能干净,以便更容易理解:

阅读代码中的注释以了解发生了什么。
忽略CSS,它只用于样式设置。所有的功能都在JS中

纯JS:
window.onload=function(){
功能更改幻灯片(d,id){
var slides=document.getElementById(id).children[0];
对于(var i=0,count=slides.childrence.length;i(有关使用OP原始代码的答案,请参阅my。)

好吧……所以我可能有点过火了:)

问题是,当我刚开始的时候,我和你做的完全一样,用一堆变量来存储进度和当前位置等等

但实际上,所有这些都不是必需的,JavaScript在这方面是非常独特的,因为页面上已经存在“物理”DOM结构,可以引用它而不是使用专用变量。它们在许多情况下可以作为“变量”使用,并且在许多情况下比(全局)变量更受欢迎

无论如何,我几乎改变了您的整个代码,也可能重命名了过程中的所有内容,去掉了不必要的元素,如
标记。您可能需要它们,但我希望使代码尽可能干净,以便更容易理解:

阅读代码中的注释以了解发生了什么。
忽略CSS,它只用于样式设计。所有功能都在JS中

纯JS:
window.onload=function(){
功能更改幻灯片(d,id){
var slides=document.getElementById(id).children[0];
对于(var i=0,count=slides.children.length;i我又看了一眼我的,意识到这可能完全不是你想要的。
所以在这里,我将尽可能忠实于您的原始代码

有关解释,请参见代码段下面的注释

window.onload=function(){
var slideIndex=0;
var stopslider=false;
滑块();
功能更改(n){
停止滑块=真;
var s=document.getElementsByClassName(“幻灯片”);
slideIndex+=n;
如果(滑动索引>s.length){
slideIndex=1;
}否则如果(滑动索引<1){
滑动索引=s.长度;
}
对于(var i=0;i我又看了一眼我的,并意识到这可能完全不是你想要的。
所以在这里,我将尽可能忠实于您的原始代码

有关解释,请参见代码段下面的注释

window.onload=function(){
var slideIndex=0;
var stopslider=false;
滑块();
功能更改(n){
停止滑块=真;
var s=document.getElementsByClassName(“幻灯片”);
slideIndex+=n;
如果(滑动索引>s.length){
slideIndex=1;
}否则如果(滑动索引<1){
滑动索引=s.长度;
}

对于(var i=0;我已检查了您的浏览器控制台是否有错误?是否已检查了您的浏览器控制台是否有错误?哇。非常感谢您的努力,myfunkside。这里有很多信息。现在,我的问题已经解决了。谢谢!!!哇!非常感谢您的努力,myfunkside。这里有很多信息。现在,我的问题已经解决了。谢谢!!!