Повторить выполнение скрипта
Есть скрипт:
$(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, время: 04:55. |