Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Сократить код в 2 раза (https://javascript.ru/forum/jquery/49923-sokratit-kod-v-2-raza.html)

mr__brainwash 03.09.2014 16:14

Сократить код в 2 раза
 
Здравствуйте, есть код, который по клику закрывает/раскрывает меню и список:

function closingList_1 () {
var utiliti = $('#utiliti');
var calcConv = $('#menu1');
utiliti.on('click', function () {
if (calcConv.css("display") == "block") {
calcConv.css("display", "none");
}
else {
calcConv.css("display", "block");
}
});
}
closingList_1 ();
function closingList_2 () {
var different = $('#different');
var sort = $('#sort');
different.on('click', function () {
if (sort.css("display") == "block") {
sort.css("display", "none");
}
else {
sort.css("display", "block");
}
});
}
closingList_2 ();

как его можно сократить в 2 раза? Нужно написать какую-то общую функцию для них, только не пойму как это сделать. Спасибо

mr__brainwash 03.09.2014 16:30

то, что получилось у меня, так это я задал классы и сделал с ними:

function closing () {
$('.utilitiDifferent').on('click', function () {
if ($('.sortMenu').css("display") == "block") {
$('.sortMenu').css("display", "none");
}
else {
$('.sortMenu').css("display", "block");
}});
}
closing ();

но это не подходит, так как при нажатии на 1-н из них срабатывает и другой тоже

ksa 03.09.2014 16:39

Цитата:

Сообщение от mr__brainwash
как его можно сократить в 2 раза?

Зачем "сокращать" код, который ненравится? :) Может просто написать другой, путевый?

Сделай тестовый пример и напиши, что нужно в итоге...

mr__brainwash 03.09.2014 17:21

http://jsfiddle.net/Ltx99uaL/2/

По каким-то причинам там не работает, но не в этом суть. Как должно быть: при нажатии на один из квадратиков открывается подменю, которое внутри него(неважно что оно пустое). При повторном нажатии закрывается.

Код,который был приведен самым 1-м - работает корректно, но его нужно сократить в 2 раза. Тот способ, что я привел 2-м - с классами, тоже работает, но не корректно.

mr__brainwash 03.09.2014 17:25

Под сокращением подразумевается написание, возможно, нового кода, который будет проще, короче и красивее чем старый.

Aetae 03.09.2014 17:33

http://jsfiddle.net/Ltx99uaL/4/
примерно так это делается

mr__brainwash 03.09.2014 17:52

Спасибо


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