Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) jQuery jQuery скрипт выпадалки

jQuery скрипт выпадалки


     30.07.2013    jQuery    2058

вопрос
Добрый день всем.
Нужна ваша помощь. Есть 2 события:


Все вроде бы хорошо, но если нажать повторно на (.dropDown_menu li#translate) то он еще делает отступ, чего не нужно. Т.е нажал 1 раз на кнопку с ид (.dropDown_menu li#translate) он сделал свое дело (при нажатие также вешается класс active), при повторном нажатие чтобы ничего не было.

Буду благодарен за любую помощь.

Ответа пока нет


Комментарии пользователей (5)

TheImDim
18

327 | 291

TheImDim - 30 июля 2013 19:54 - Юзер


$('.dropDown_menu li#translate').click(function(){
            var _this = $(this);
            if( _this.hasClass("active") ) return false;
            _this.addClass("active");
            $('.input_search_inner').animate({paddingRight:"+=285px"});  // Уменьшаем поле поиска, сделав нужный отступ с права
            setTimeout(function(){
                $('#bl_translate').fadeIn();
            }, 250); // В анимации показываем скрытые пункты
            return false;
        });
        $('.dropDown_menu li:not(#translate)').click(function(){
            $('#bl_translate').hide();
            $('.input_search_inner').animate({paddingRight:"140px"})
        });

xEoN
21 | 15

xEoN - 31 июля 2013 01:29 - Юзер

Ээм не то совсем.
Вот полный скрипт который есть:
$(document).ready(function(){
    (function($){
        $('.dropDown_menu li').click(function(){
            var dropDown_wp = $('.dropDown_menu ul').find('li');
            dropDown_wp.siblings("li.active").removeClass('active');
            $(this).addClass('active');
        });
        $('.dropDown_menu li#translate').click(function(){ // Клик на вкладку c опр. ID
            $('.input_search_inner').animate({paddingRight:"+=285px"});  // Уменьшаем поле поиска, сделав нужный отступ с права
            setTimeout(function(){
                $('#bl_translate').fadeIn();
            }, 300); // В анимации показываем скрытые пункты
            return false;
        });
        $('.dropDown_menu li:not(#translate)').click(function(){
            $('#bl_translate').hide();
            $('.input_search_inner').animate({paddingRight:"140px"})
        });
        
    })(jQuery)
});


А вот сайт с примером, если нажать на вкладку переводы 2-жды то зрелище не из приятных...
http://create-project.ru/proj/test1/

TheImDim
18

327 | 291

TheImDim - 31 июля 2013 01:44 - Юзер

Я хоть и не так давно знаком с js, но хочеться материться когда видишь такие скрипты, вот нормальный, оптимизированный вариант:


$(document).ready(function(){
    $(function() {
        $('.dropDown_menu li').live("click", function(){
            var _this = $(this);
            if( _this.hasClass("active") ) return false;
            var id = _this.attr("id");
            $('.dropDown_menu li.active').removeClass('active');
            _this.addClass('active');
            
          if( id == "translate" ) {
            $('.input_search_inner').animate({paddingRight:"+=285px"});  // Уменьшаем поле поиска, сделав нужный отступ с права
            setTimeout(function(){ $('#bl_translate').fadeIn(); }, 300); // В анимации показываем скрытые пункты
            return false;
          } else {
            $('#bl_translate').hide();
            $('.input_search_inner').animate({paddingRight:"140px"})
          }
        });
        
    });
});

xEoN
21 | 15

xEoN - 31 июля 2013 01:55 - Юзер

Да можно и по материться...Скажем так, я только начал его изучать )))
Благодарю за помощь, работает как нужно.

TheImDim
18

327 | 291

TheImDim - 31 июля 2013 01:57 - Юзер

А ну тогда нормально, просто думал скопипастили у какого нибудь "профессионала".

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы