带有函数问题的JavaScript幻灯片
函数plusSlides在我的html中通过onclick调用。显示了我正在使用的类似函数和html。类mySlides包含将为每个n==xin showSlides显示的文本。与链接中的幻灯片演示示例不同,当我尝试单击onclick=plusSlides-1时,我的函数不起作用。例如,当我在plusSlides-1上单击三次时,会同时添加AeralMap和fedTiless,但不会添加路线图。有人知道为什么吗带有函数问题的JavaScript幻灯片,javascript,html,slideshow,Javascript,Html,Slideshow,函数plusSlides在我的html中通过onclick调用。显示了我正在使用的类似函数和html。类mySlides包含将为每个n==xin showSlides显示的文本。与链接中的幻灯片演示示例不同,当我尝试单击onclick=plusSlides-1时,我的函数不起作用。例如,当我在plusSlides-1上单击三次时,会同时添加AeralMap和fedTiless,但不会添加路线图。有人知道为什么吗 function roadMap() { map.addLayer(Ro
function roadMap() {
map.addLayer(Road);
map.removeLayer(febTiles);
}
function febTiless() {
map.addLayer(febTiles);
map.removeLayer(Road);
}
function aerialMap() {
map.addLayer(Aerial);
map.removeLayer(febTiles);
map.removeLayer(Road);
}
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var slides = document.getElementsByClassName("mySlides");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
if(n == 1)
aerialMap();
if(n == 2)
febTiless();
if(n == 3)
roadMap();
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[slideIndex-1].style.display = "block";
}
错误在代码的这一部分:
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
if(n == 1)
aerialMap();
if(n == 2)
febTiless();
if(n == 3)
roadMap();
尝试添加map.removeLayerAerial;到前两个功能路线图和febTiless。可能是由于缺少这些调用,导致本应可见的图层被天线覆盖。感谢您的评论,但这并不能解决与plusSlides-1相比plusSlides-1出现故障的问题1。
var slideIndex;
showSlides(1);
function plusSlides(n) {
showSlides(slideIndex + n); // avoid assignment here
}
function currentSlide(n) {
showSlides(n); // avoid assignment here
}
function showSlides(n) {
var slides = document.getElementsByClassName("mySlides");
slideIndex = n; // assign only here, at a single place
// Don't use n anymore, only work with slideIndex
if (slideIndex > slides.length) {slideIndex = 1}
if (slideIndex < 1) {slideIndex = slides.length}
if(slideIndex == 1)
aerialMap();
if(slideIndex == 2)
febTiless();
if(slideIndex == 3)
roadMap();
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[slideIndex-1].style.display = "block";
}