Показать сообщение отдельно
  #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);      
 }
Ответить с цитированием