Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2010, 23:55
Аспирант
Отправить личное сообщение для peter888 Посмотреть профиль Найти все сообщения от peter888
 
Регистрация: 24.07.2009
Сообщений: 60

Не выполнять ф-цию второй раз, пока она не проработает до конца.
Есть картинка:
<img id="up" src="image/r_off.png" border="0" width="58" height="162" alt="" onclick="next_but();">
Есть скрипт:
<script language="JavaScript">
var sliding = false;
var k = 0;

function next_but() {
	sliding = clearInterval(sliding);
	k = 0;
	sliding = setInterval(function() {
		if( k < 261 ) {
			k = k + 9;
			document.getElementById('t1').scrollLeft = document.getElementById('t1').scrollLeft + 9;
		} else {
			sliding = clearInterval(sliding);
		}
	}, 5 );
}
</script>
Он работает примерно 1-3 сек.
Когд я кликаю по картинке, то выполняеться next_but(). Если кликать с интервалом бодьше 3-4 сек, то все ок, но если кликать быстро, например два раза, то результат не тот.
Мне просто надо, чтоб переменная k обезательно дошла до 261, лишь только тогда можно выполнить эту ф-цию опять.
Как запретить виполнение ф-ции второй раз, пока она не проработает до конца?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2010, 04:24
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,054

Как-то так. Вообще можно сделать функцию красивей, но лень думать в такое время.)
sliding=0;
function next_but() {
if(!sliding)
	{
	k = 0;
	sliding = setInterval(function() {
		if( k < 261 ) {
			k+=9;
			document.getElementById('t1').scrollLeft+=9;
		} else {
			clearInterval(sliding);
			sliding=0;
		}
		}, 5 );
	}
}
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2010, 12:04
Аспирант
Отправить личное сообщение для peter888 Посмотреть профиль Найти все сообщения от peter888
 
Регистрация: 24.07.2009
Сообщений: 60

Спасибо, шот я не смог сам догадатся вчера..., спасибо!
Ответить с цитированием
Ответ



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

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