Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2013, 15:37
Интересующийся
Отправить личное сообщение для Sam L Посмотреть профиль Найти все сообщения от Sam L
 
Регистрация: 14.02.2013
Сообщений: 15

Повторить выполнение скрипта
Есть скрипт:

$(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?
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2013, 15:58
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

сделать 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++ }
    }

});
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2013, 16:14
Интересующийся
Отправить личное сообщение для Sam L Посмотреть профиль Найти все сообщения от Sam L
 
Регистрация: 14.02.2013
Сообщений: 15

пробовал, но картинки не меняются - step++ не срабатывает..
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2013, 16:39
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

$(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++; }
}


Можно так попробовать
Ответить с цитированием
  #5 (permalink)  
Старый 18.06.2013, 16:56
Интересующийся
Отправить личное сообщение для Sam L Посмотреть профиль Найти все сообщения от Sam L
 
Регистрация: 14.02.2013
Сообщений: 15

так картинки будут непрерывно меняться, а хотелось бы, чтобы каждый раз на клик три менялись и останавливались...
Ответить с цитированием
  #6 (permalink)  
Старый 18.06.2013, 17:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Sam L
По клику три картинки меняются. Что изменить, чтобы при повторном клике на #tap срабатывал slideit?
Он и так срабатывает. setInterval же установили. Но работает после step > 3 в холостую. Нужно сбрасывать step на единицу.
А еще eval is evil.
Ответить с цитированием
  #7 (permalink)  
Старый 18.06.2013, 17:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

$(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);
        }
    }
});
Ответить с цитированием
  #8 (permalink)  
Старый 18.06.2013, 17:20
Интересующийся
Отправить личное сообщение для Sam L Посмотреть профиль Найти все сообщения от Sam L
 
Регистрация: 14.02.2013
Сообщений: 15

cпасибо! ну и с eval и setInterval теперь все понятно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как остановить выполнение скрипта? ichisen Events/DOM/Window 2 12.04.2012 14:21
Как приостановить выполнение скрипта до получения результата AJAX запроса? Хиросим AJAX и COMET 9 31.10.2011 10:56
выполнение php скрипта без перезагрузки Шаман AJAX и COMET 5 22.08.2009 10:27
Остановить выполнение скрипта Nonam Общие вопросы Javascript 22 04.05.2009 01:45
как прекратить выполнение скрипта ? kefi Общие вопросы Javascript 3 31.03.2009 19:05