ФорумПрограммированиеJavaScript → clearInterval в ослах

clearInterval в ослах

  • drugoi

    Сообщения: 71 Репутация: N Группа: Адекваты

    Spritz Окт. 18, 2010, 5:15 п.п., спустя 4 секунды

    Стояла задача сделать автоматически меняющиеся картинки, а также кнопки для перехода на нужную картинку, написал JS код, работает в мозилле, в опере нормально, а в IE не срабатывает clearInterval, т.е. автоматически работает нормально, а при нажатии на кнопки, с каждым новым нажатием прибавляет еще интервалов и начинается такое сука  мелькание. Проверил 6-ю и 7-ю версии. Подскажите в чем может быть дело.

    Код:
    
    var dInt="";
    
    function init(duration) {
    	var i = -1;
    	startplay(duration,i);
    }
    
    function startplay(duration,i) {
    	i++;
    	window.clearInterval(dInt);
    	switch(i) {
    		case 0:
    		$('.container .img').fadeOut(300,function(){ 
    			$('.container .img').css('background','url("/images/image-1.jpg") no-repeat');
    			$('.container .img').fadeIn(300,function(){dInt=setInterval(function(){startplay(duration,i);}, duration);});
    		});
    		break;
    
    		case 1:
    		$('.container .img').fadeOut(300,function(){ 
    			$('.container .img').css('background','url("/images/image-2.jpg") no-repeat');
    			$('.container .img').fadeIn(300,function(){dInt=setInterval(function(){startplay(duration,i);}, duration);});
    		});
    		break;
    
    		case 2:
    		$('.container .img').fadeOut(300,function(){ 
    			$('.container .img').css('background','url("/images/image-3.jpg") no-repeat');
    			$('.container .img').fadeIn(300,function(){dInt=setInterval(function(){startplay(duration,i);}, duration);});
    		});
    		break;
    
    		case 3:
    		init(duration);
    		break;
    
    	}
    }
    
    $(document).ready(function()
    {
    $("button#button1").click(function(){$(this).blur();startplay(5000,-1);});
    $("button#button2").click(function(){$(this).blur();startplay(5000,0);});
    $("button#button3").click(function(){$(this).blur();startplay(5000,1);});
    });
    
    window.onload = init(5000);
    
  • drugoi

    Сообщения: 71 Репутация: N Группа: Адекваты

    Spritz Окт. 18, 2010, 5:04 п.п., спустя 23 часа 48 минут 42 секунды

    Черт))) Проблема оказалась банальной))) закешировался js файл. Когда грохнул кэш вручную все заработало.
  • drugoi

    Сообщения: 71 Репутация: N Группа: Адекваты

    Spritz Окт. 18, 2010, 5:15 п.п., спустя 11 минут

    …если кому надо - почти готовое решение, осталось добавить непосредственно HTML код ну и картинки.
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <style>
    .container, .img, .buttons {width:640px;}
    .img {height:480px; margin:0 0 20px 0;}
    </style>
    <script>
    /*
    
    … JS код из первого поста
    
    */
    </script>
    </head>
    <body>
    	<div class="container">
        	<div class="img"></div>
            <div class="buttons" align="left">
    			<button id='button1'> 1 </button> <button id='button2'> 2 </button> <button id='button3'> 3 </button>
            </div>
        </div>
    </body>
    </html>
    
    
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Окт. 18, 2010, 5:15 п.п., спустя 14 секунд


    Черт))) Проблема оказалась банальной))) закешировался js файл. Когда грохнул кэш вручную все заработало.
    лол

    решение на самом деле бесполезное, ибо влоб под 3 картинки, согласись :))
    Сапожник без сапог
  • drugoi

    Сообщения: 71 Репутация: N Группа: Адекваты

    Spritz Окт. 18, 2010, 5:22 п.п., спустя 7 минут 5 секунд

    ну почему на 3 дуд? если добавить в переключатель еще кейсов, то там сколько угодно можно картинок, вопрос скорей в том почему я сюда не добавил какой-нить JS пагинатор…
    ну это поправимо, ща))
    Спустя 245 сек.
    вообще чтоб вручную не писать, можно в цикл, да и прям из базы например
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Окт. 18, 2010, 5:27 п.п., спустя 4 минуты 15 секунд

    drugoi, :)
    Сапожник без сапог
  • drugoi

    Сообщения: 71 Репутация: N Группа: Адекваты

    Spritz Окт. 18, 2010, 5:28 п.п., спустя 1 минуту 36 секунд

    добавить скролл слою с кнопками, можно даже превью картинок, но это тогда будем изобретать велосипед, таких скриптов в нете навалом, да и покруче чем этот говнокод))))))
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz Окт. 22, 2010, 7:04 п.п., спустя 4 дня 1 час 36 минут

    ТС трешер

Пожалуйста, авторизуйтесь, чтобы написать комментарий!