Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отключение обработчика. (https://javascript.ru/forum/jquery/21834-otklyuchenie-obrabotchika.html)

Duda.Ml1986@gmail.com 26.09.2011 12:37

Отключение обработчика.
 
Всем привет.
Есть такой обработчик клика по навигационным кнопкам
Проблема в том что кликая два раза подряд по кнопке навигации анимация идет как надо , а вот второй раз(или третий, сколько наклацаешь) функция 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);      
 }

Duda.Ml1986@gmail.com 26.09.2011 12:43

Почитал документацию на тригеры, наверное они не очень (а точнее вообще) не подходят. Наверное заводить переменную?

Duda.Ml1986@gmail.com 26.09.2011 12:49

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

	}

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


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