Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2011, 12:37
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Отключение обработчика.
Всем привет.
Есть такой обработчик клика по навигационным кнопкам
Проблема в том что кликая два раза подряд по кнопке навигации анимация идет как надо , а вот второй раз(или третий, сколько наклацаешь) функция rokir не запускается . Как можно проверять все ли манипуляции проделаны?
Есть вариант использования
$('.class').trigger('click');
и
$('.class').unbind('click');
То есть в начале убивать обработчик, а в конце добавлять. Правильно ли это и есть ли что то более практичное и совершенное? Спасибо. Может еще рекомендации по улучшению кода?
$('.navigation').click(function(){
	var div = document.getElementById('slider');
	var elems = div.getElementsByTagName('div');
	var first_slide = "#"+elems[0].id;
	var last_slide = "#"+elems[4].id;
	var rules = this.id; 
	var smeh = (width_slider_basic.replace (/px/g, '')) ;
	smeh = smeh*2;
	smeh = smeh+"px";
	//alert(smeh);
	switch(this.id)
	{
		case 'left':
		  $('#slider').animate({
    	  left: smeh
 		  }, 1000, function() {	  
          rokir(first_slide,last_slide,rules);
          });
  		break
		case 'right':
		  $('#slider').animate({
    	  left: "0px"
 		  }, 1000, function() {	  
          rokir(first_slide,last_slide,rules);
          });
  		break
	}
	//rokir(first_slide,last_slide,this.id);
		 
});
 
 
function rokir(id1,id2,id){   
    id1=$(id1);
    id2=$(id2);
 	switch(id)
	{
		case 'left':
		id2.after(id1);
		break
		case 'right':
		id1.before(id2);
		break
	}
	$('#slider').css('left',width_slider_basic);
    //id2.after(id1);
    //id1.replaceWith(id2);      
 }
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2011, 12:43
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Почитал документацию на тригеры, наверное они не очень (а точнее вообще) не подходят. Наверное заводить переменную?
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2011, 12:49
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

if(now_work==true)
	{
		exit();

	}

Вот таким обработчиком решилось, но что то мне это не по душе или нормальный вариант. Просто мне не очень нравится теория что если работает то ок, хотелось бы что бы это было правильно! Спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Проблема с вызовом функции в качестве обработчика G_M_S Общие вопросы Javascript 5 03.05.2011 11:55
отключение функции в определённом месте andrwe Общие вопросы Javascript 11 02.05.2011 20:19
[jQuery] [Обработка клика] Как не потерять текущий контекст внутри обработчика? xintrea Events/DOM/Window 1 10.02.2011 16:34
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17