Отключение обработчика.
Всем привет.
Есть такой обработчик клика по навигационным кнопкам Проблема в том что кликая два раза подряд по кнопке навигации анимация идет как надо , а вот второй раз(или третий, сколько наклацаешь) функция 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); } |
Почитал документацию на тригеры, наверное они не очень (а точнее вообще) не подходят. Наверное заводить переменную?
|
if(now_work==true) { exit(); } Вот таким обработчиком решилось, но что то мне это не по душе или нормальный вариант. Просто мне не очень нравится теория что если работает то ок, хотелось бы что бы это было правильно! Спасибо |
Часовой пояс GMT +3, время: 23:30. |