Вы можете определить переменную в качестве индекса для отслеживания того, какое изображение было нажата.
Используя этот индекс, вы можете назначить click target.addEventListener («click», handler), вызывая, handler
где target - это элемент, который вы хотите прослушать для события клика, и handler
это код, который вы хотите выполнить.
Когда страница сначала загружает индекс, будет равна нулю, поэтому первое изображение может получить обработчик события. В обработчике источник изображения можно изменить, и обработчик можно удалить с помощью removeEventListener
.
Затем индекс может быть увеличен и сравнен с числом элементов, которые будут работать. Если индекс меньше числа элементов, мы возьмем элемент в этом индексе и добавим прослушиватель событий к этому элементу. Код обратного вызова будет таким же, что и каждому элементу, которому назначен обработчик, который запускает изменение изображения и связывает следующий элемент.
<table id="ticktable">
<tr>
<td>
<img src="http://www.backgroundsy.com/file/large/yellow-sign.jpg" width="100">
</td>
<td>
<img src="http://www.backgroundsy.com/file/large/yellow-sign.jpg" width="100">
</td>
<td>
<img src="http://www.backgroundsy.com/file/large/yellow-sign.jpg" width="100">
</td>
<td>
<img src="http://www.backgroundsy.com/file/large/yellow-sign.jpg" width="100">
</td>
</tr>
</table>
<script>
var clickIndex = 0;
var el = document.querySelectorAll("#ticktable img")[0];
el.addEventListener("click", onclicked);
function onclicked(e) {
var elements = document.querySelectorAll("#ticktable img")
var el = elements[clickIndex++];
el.setAttribute("src", "https://upload.wikimedia.org/wikipedia/commons/1/15/Tick-red.png");
el.removeEventListener("click", onclicked);
if (clickIndex < elements.length)
elements[clickIndex].addEventListener("click", onclicked);
};
</script>