#javascript #function
#javascript #функция
Вопрос:
Этот скрипт будет перебирать изображения, но я не могу понять, как заставить его распознавать ссылки, связанные с каждым изображением. Я думал, что могу просто использовать тот же счетчик «i» для перемещения по массиву ссылок, но это не работает.
var images = [
"Image1.jpg",
"Image2.jpg",
"Image3.jpg"
];
var weblinks = [
"http://google.com",
"http://yahoo.com",
"http://dell.com"
];
var num = images.length;
var i = 0;
var t;
function play() {
if(typeof t === 'undefined') {
t = setInterval(next, 2000);
}
}
function Stop() {
if(t) clearInterval(t);
}
function next() {
if( i >= num) i = 0;
document.getElementById('img').src = images[i];
document.getElementById('link').src = webLinks[i];
}
function previous() {
if(--i < 0) i = num-1;
document.getElementById('img').src = images[i];
document.getElementById('link').src = webLinks[i];
}
window.onload = function() {
document.getElementById('img').src = images[0];
document.getElementById('link').src = webLinks[0];
a.href=link[i];
}
HTML
<table width="50%" border="0" cellspacing="10" cellpadding top="0" align="center">
<tr>
<td><input type="button" value="Back" onclick="previous()"/></td>
<td align="center"><a id="link" href="#" target="_self"><img src="Image1.jpg" alt="" id="img"/></a></td>
<td><input type="button" value="Next" onclick="next()"/></td>
</tr>
<tr>
<td colspan="3" align="center" height="50"><input type="button" value="Play" onclick="play()" />
<input type="button" value="Stop" onclick="Stop()" /></td>
</tr>
</table>
Ответ №1:
Заменить document.getElementById('link').src
на document.getElementById('link').href
— вы меняете неправильный атрибут ссылки.
РЕДАКТИРОВАТЬ: также измените var weblinks
на var webLinks
— JavaScript чувствителен к регистру. И удалить a.href=link[i];
, который ничего не делает (поскольку a не определен, равно как и link).
Комментарии:
1. Произошла вторая ошибка — я отредактировал свой ответ, чтобы включить исправление
2. / facepalm. Спасибо. Теперь он работает нормально, несмотря на то, что IE утверждает, что он отобразил страницу с ошибкой.