Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Зацените кусок кода (https://javascript.ru/forum/misc/18722-zacenite-kusok-koda.html)

prowoke 13.07.2011 10:19

Зацените кусок кода
 
В общем мне надо было сделать так. Есть 2 выезжающих меню и мне надо, чтобы при нажатии на одно меню, закрывалось другое меню, если оно открыто, ну и наоброт. Ну это типо "Сортировать по: дате, алфавиту". Вот жму "по дате" ниже валазят даты, жму по алфавиту, скрываются даты и вылазит алфавит. Я назначил элементам дате и алфавиту обработчики onClick а засунул 2 такие функции в них, вот они:
abc_sort_open = false;
data_sort_open = false;

function show_data_sort() {
            if (abc_sort_open) {
               $(".abc_sort").slideToggle('fast');
               abc_sort_open = false;
            }
            
            $(".data_sort").slideToggle('fast');
            if (data_sort_open) {
                data_sort_open = false;
                return;
            }
            data_sort_open = true;
}
function show_abc_sort() {
           if (data_sort_open) {
               $(".data_sort").slideToggle('fast');
               data_sort_open = false;
           }
           
           $(".abc_sort").slideToggle('fast');
           if (abc_sort_open) {
               abc_sort_open = false;
               return;
           }
           abc_sort_open = true;
}


Мне кажется, что я много лишнего наделал, в общем поправьте, если не сложно. Сам код работает и делает, что я хотел.

ksa 13.07.2011 10:40

Цитата:

Сообщение от prowoke
Мне кажется, что я много лишнего наделал

Практически в два раза. :)
Можно обойтись одной функцией с параметром или функцией, которая анализирует некие свойства определенных элементов ДОМ...

Serg_pnz 13.07.2011 10:58

"Аккордион" в помощь


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