Повторить выполнение скрипта
Есть скрипт:
$(document).ready(function () { var image1 = new Image(); image1.src = "img/1.png"; var image2=new Image(); image2.src = "img/2.png"; var image3=new Image(); image3.src = "img/3.png"; var step =1 $("#tap").click(function () { setInterval(slideit, 20); }); function slideit() { if (step<3){ document.images.slide.src = eval("image" + step + ".src"); step++ } } }); По клику три картинки меняются. Что изменить, чтобы при повторном клике на #tap срабатывал slideit?:-? |
сделать step локальней
$(document).ready(function () { var image1 = new Image(); image1.src = "img/1.png"; var image2=new Image(); image2.src = "img/2.png"; var image3=new Image(); image3.src = "img/3.png"; $("#tap").click(function () { setInterval(slideit, 20); }); function slideit() { var step =1 if (step<3){ document.images.slide.src = eval("image" + step + ".src"); step++ } } }); |
пробовал, но картинки не меняются - step++ не срабатывает..
|
$(function () { image1 = new Image(); image1.src = "img/1.png"; image2 = new Image(); image2.src = "img/2.png"; image3 = new Image(); image3.src = "img/3.png"; $("#tap").click(function () { setInterval(slideit, 20); }); }); var step = 1; function slideit() { if(step > 2) step = 1; if (step < 3){ document.images.slide.src = window['image' + step].src; step++; } } Можно так попробовать :) |
так картинки будут непрерывно меняться, а хотелось бы, чтобы каждый раз на клик три менялись и останавливались...
|
Цитата:
А еще eval is evil. |
$(document).ready(function () { var images = ["img/1.png", "img/2.png", "img/3.png"]; for (var i = 0; i < images.length; i++) new Image().src = images[i]; var step, timerId; $("#tap").click(function () { step = 1; timerId = setInterval(slideit, 20); }); function slideit() { if (step < 3){ document.images.slide.src = images[step - 1]; step++; } else { clearInterval(timerId); } } }); |
cпасибо! ну и с eval и setInterval теперь все понятно :)
|
Часовой пояс GMT +3, время: 13:59. |