Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Дублирование javascrip кода (https://javascript.ru/forum/misc/31325-dublirovanie-javascrip-koda.html)

MTapac 03.09.2012 17:34

Дублирование javascrip кода
 
Здравствуйте, скажу сразу я не очень силен в яваскрипте, если проблема легко решима, прошу не бросать тапками.
Проблема:
Есть файл site.js
Код что в нем отвечает за навигацию сайта.
Подгружается он единоразово в индексе.
Пример кода 1 навигации:
$('#my_deposit').click(function()
	{
		
		if(clicker == 2)
		{
		$("#load").fadeTo(1, 1);
		$("#page_top").fadeTo(1, 0.1);
		$("#page_top").fadeTo(1000, 1);
		$("#page_center").fadeTo(1, 0.1);
		$("#page_center").fadeTo(1000, 1);
		$("#page_b").fadeTo(1, 0.1);
		$("#page_b").fadeTo(1000, 1);
		$("#load").fadeTo(995, 0);
		$("#content").html("");
		$.ajax({
				url: "site/cabinet/deposite.php",
				cache: true,
				success: function(html)
				{
					$("#content").html(html);
				}
				});
		clicker = 1;
		setTimeout(function (){clicker = 2;}, 3000);
		}
	});


Собственно в deposite.php
Есть несколько таймеров, и когда несколько раз перейти на ссылку $('#my_deposit'). таймера, значительно ускоряются, тоисть просто дублируется код насколько я понял.
Вот один таймер:
setInterval
	(
		function()
		{	
			if(sec_str >= 0 && depo == 1)
			{
				$('#upd_timer_dep').html(hour_str+"час."+min_str+"мин. "+sec_str+"сек.");
				sec_str--;
				$('#dep_buy').html("<img src='images/buyn.png' />");
			}
... И тд и тп


Перед загрузкой функции, удаляю все переменные, не помогает.
Он просто дублирует(догружает) код, а нужно чтобы обнулял и опять сначала.
Пробывал и подгружать через load(file) тот же результат, спасает только F5.
Помогите, кто знает!:help:

Deff 03.09.2012 17:41

MTapac,
Присваивайте таймеру айдишник и перед запуском любого таймера, очищайте все таймеры с данным id
Цитата:

var interval_ID;
clearInterval(interval_ID)
interval_ID = setInterval
(
function()

MTapac 03.09.2012 17:46

Deff спасибо Вам огромное.
Я даже незнал о clearInterval.Deff,


Часовой пояс GMT +3, время: 12:57.