Вытащить id от дива для использования в JS
Ребят , прошу помощи, так как Javascript вообще не понимаю.
Есть конопки (div c айдишниками) и связанные с ними разделы (тоже div с айдишниками) при нажатии на кнопку раздел становится видимым.. Как оптимизировать этот код, чтобы на каждую кнопку не писать hide, show , сейчас код выглядит так :
$(document).ready(function(){
$("#button_server").click(function(){
$("#global_menu_rootser").hide();
$("#global_menu_users").hide();
$("#global_menu_server").show();});
$("#button_users").click(function(){
$("#global_menu_rootser").hide();
$("#global_menu_server").hide();
$("#global_menu_users").show();});
......
});
|
$(document).ready(function(){
function toggle(a,b){
if(b){$(a).show();return}
$(a).hide();
}
$("#button_users,#button_users").click(function(){
// Массив селекторов, следущее 0 или 1; 0 - cкрываем, 1 - открываем
a='#global_menu_rootser,0,#global_menu_users,0,#global_menu_server,0,#global_menu_users,1'.split(',');
for(var i=0; i<a.length; i+=2) {
toggle(a[i],a[i+1])
}
});
|
Deff, хрень полная. Еще больше запутываешь человека.
xfavorit, приведите кусок своего html-кода с меню. Все можно сделать гораздо проще используя более подходящие селекторы и атрибуты (возможно лучше вместо кнопок использовать ссылки с href, указывающем на нужный id блока?) |
function Toggle(a,b){
if(b){$(a).show();return}
$(a).hide();
}
Трэш. Во-первых все проще с тернартым оператором. Во вторых - откуда такое именование - с большой буквы? Это же не C# ))) И что за a, b ? Гениальные названия переменных )))
function toggle(el, show){
$(el)[show ? 'show' : 'hide']();
}
|
danik.js,
В компрессоре один фиг ужмёт до a,b И не интересная задача |
Ну давай тогда сразу писать примерно так:
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a])...
|
Цитата:
if(b){$(a).show();return} наработанная и подходит для много проверок if(b){$(a).show();return} if(b==0{$(a).toggle();return} if(b==-1){$(a).hide();return} Так что писал даже не задумываясь |
if(b){$(a).show();return}
if(b==0{$(a).toggle();return}
if(b==-1){$(a).hide();return}
Тоже говнецом попахивает :) 3-е условие не выполнится никогда ) Для "много проверок" существует switch:
switch (b)
{
case 1:
$(a).show();
break;
case 0:
$(a).toggle();
break;
case -1:
$(a).hide();
break;
}
Или даже:
$(a)[{1:'show', 0:'toggle', -1:'hide'}[b]]();
|
Столько всего понаписали... А этого
Цитата:
|
danik.js,
:) Ти чо злыдень такой с утра ? Просто пишите красивый код, ежели стоящий - будет взят за пример. Я не позиционирую себя как гуру скриптов, мне интересны сами задачи. |
| Часовой пояс GMT +3, время: 00:40. |