我在 youtube 上查阅了这个指南,了解如何使用 javascript 创建简单的幻灯片放映,它运行得非常完美。但是,我希望每张图片都链接到特定的 href 以供用户导航。
<div id="slider_news">
<a href="news1.html" id="slider_link"><imglink><img src="images/img1.jpg" id="image"></imglink></a>
<div class="left_hold"><img onClick="img(-1)" class="left" src="images/arrow_left.png"></div>
<div class="right_hold"><img onClick="img(1)" class="right" src="images/arrow_right.png"></div
</div>
这是我的 HTML,我使用“a”标签在图像周围创建了一个链接并给它一个 ID(="slider_link")
var imageCount = 1;
var total = 5;
function img(x) {
var image = document.getElementById('image');
imageCount = imageCount + x;
if(imageCount > total){imageCount = 1;}
if(imageCount < 1){imageCount = total;}
image.src = "images/img"+ imageCount +".jpg";
var sliderlink = document.getElementById("slider_link");
if(imageCount = 2){sliderlink.href = "news2.html";} //img2.jpg link
else if(imageCount = 3){sliderlink.href = "news3.html";} //img3.jpg link
else if(imageCount = 4){sliderlink.href = "news4.html";} //img4.jpg link
else if(imageCount = 5){sliderlink.href = "news5.html";} //img5.jpg link
}
window.setInterval(function imgA() {
var image = document.getElementById('image');
imageCount = imageCount + 1;
if(imageCount > total){imageCount = 1;}
if(imageCount < 1){imageCount = total;}
image.src = "images/img"+ imageCount +".jpg";
var sliderlink = document.getElementById("slider_link");
if(imageCount = 2){sliderlink.href = "news2.html";} //img2.jpg link
else if(imageCount = 3){sliderlink.href = "news3.html";} //img3.jpg link
else if(imageCount = 4){sliderlink.href = "news4.html";} //img4.jpg link
else if(imageCount = 5){sliderlink.href = "news5.html";} //img5.jpg link
},5000);
这是我的 javascript 代码,我使用它的 ID 从 a 标签中创建一个变量,然后只需添加 4 个 else if 语句并为正确的图像编号添加正确的页面。我基本上添加了从“var sliderlink”开始的所有内容到以前工作的 slider 。
我遇到的问题是 html 在循环中仅更改一次并永远停留在该页面上 (news2.html)。一旦我点击图像并被定向到页面,整个幻灯片开始表现得很奇怪,不遵循图像顺序等。
如果代码看起来有点笨拙和杂乱无章,我很抱歉,但希望你能理解我做错了什么。
最佳答案
您的 ifs 使用 =
运算符而不是 ==
或 ===
运算符。试试这个:
if(imageCount === 2){sliderlink.href = "news2.html";} //img2.jpg link
else if(imageCount === 3){sliderlink.href = "news3.html";} //img3.jpg link
else if(imageCount === 4){sliderlink.href = "news4.html";} //img4.jpg link
else if(imageCount === 5){sliderlink.href = "news5.html";} //img5.jpg link
此外,在 setInterval
调用中,您不应该尝试命名传递给它的函数。
尝试:
window.setInterval(function() {
代替
window.setInterval(function imgA() {
关于javascript - 试图改变 <a> 标签的 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27913805/