Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2010, 20:20
Новичок на форуме
Отправить личное сообщение для jenyokCoder Посмотреть профиль Найти все сообщения от jenyokCoder
 
Регистрация: 28.03.2010
Сообщений: 2

не могу разобраться с массивом !
Хелло всем !( решил написать простенькие tabs и вот те на , ) извините за столь глупые вопросы , только новичок в этом деле...
вот вообщем трабла : не отрабатывает код !!!
function tabs_forum( q,w,e,t ){
var Arrq = new Array(q,w,e,t);
for(c=0;c<4;c++) { document.getElementById( Arrq[c].value ).style.display ='none'; }
}
function forum_tabs ( obj_for  ){
switch ( obj_for ) {
  case 't1':
if( obj_for == 't1' )  document.getElementById( obj_for ).style.display ='block';
else tabs_forum ( 't2','t3','t4','t5' );
    break;
    case't2':
if( obj_for == 't2' )  document.getElementById( obj_for ).style.display ='block';
else tabs_forum ( 't1','t3','t4','t5' );
    break;
    case 't3':
if( obj_for == 't3' )  document.getElementById( obj_for ).style.display ='block';
else tabs_forum ( 't1','t2','t4','t5' );
    break;
    case 't4':
if( obj_for == 't4' )  document.getElementById( obj_for ).style.display ='block';
else tabs_forum ( 't1','t2','t3','t5' );
    break;
    case 't5':
if( obj_for == 't5' )  document.getElementById( obj_for ).style.display ='block';
else tabs_forum ( 't1','t2','t3','t4' );
    break;
}
все это крепиться к вот этому коду.
<div align="center">Профиль форума</div>
| <a href="javascript:forum_tabs('t1');">Поля профиля</a>
| <a href="javascript:forum_tabs('t2');">Внешние функции</a>
| <a href="javascript:forum_tabs('t3');">Управление mail</a>
| <a href="javascript:forum_tabs('t4');">Статистика</a>
| <a href="javascript:forum_tabs('t5');">Сообщения,темы,вложения</a>
|
<div align="center" id="t1">axaxa</div>
<div align="center" id="t2" style="display:none;">asasas</div>
<div align="center" id="t3" style="display:none;">sdsdsd</div>
<div align="center" id="t4" style="display:none;">fdsfsdf</div>
<div align="center" id="t5" style="display:none;">asdasdas</div>

подскажите в чем дело !!!
заранее благодарен !!!
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2010, 22:34
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,623

Используйте какую_нить приличную прогу для дебага, тот же файербаг, это поможет хотябы знать почему не обрабатывает:

1 ая проблема: забыта закрывающая функцию forum_tabs скобка.

А вот далее уже проблем с самим кодом:
2. Зачем то впихан if else, rjгда case ('в случае') и так равно нужному значению:
switch ( obj_for ) {case  't4':/**/break;} равносильно if(obj_for=='t4') {/**/}

Таким образом else не может быть вызвано никогда, а потому не работает часть кода ответственная за сокрытие.
3. И да, элемент массива вызывается просто Arrq[c], никаких value, а потому даже если бы эта функция вызывалась - она бы не работала.

В общем учите матчасть.)

Последний раз редактировалось Aetae, 28.03.2010 в 22:37.
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2010, 23:46
Новичок на форуме
Отправить личное сообщение для jenyokCoder Посмотреть профиль Найти все сообщения от jenyokCoder
 
Регистрация: 28.03.2010
Сообщений: 2

Спасибо ) что-то сразу не подумал ((( бывает же элементарный переключатель не сообразил как использовать ...
как хорошо что есть где спросить =))
вот и решение :
function tabs_forum( q,w,e,t ){
var Arrq = new Array( q,w,e,t );
for(c=0;c<4;c++) { document.getElementById( Arrq[c] ).style.display ='none'; }
}
function forum_tabs ( obj_for  ){
switch ( obj_for ) {
case 't1': document.getElementById( obj_for ).style.display ='block'; 
tabs_forum ( 't2','t3','t4','t5' ); break;
case't2':  document.getElementById( obj_for ).style.display ='block'; 
tabs_forum ( 't1','t3','t4','t5' )  break;
case 't3': document.getElementById( obj_for ).style.display ='block'; 
tabs_forum ( 't1','t2','t4','t5' ); break;
case 't4': document.getElementById( obj_for ).style.display ='block'; 
tabs_forum ( 't1','t2','t3','t5' ); break;
case 't5': document.getElementById( obj_for ).style.display ='block'; 
tabs_forum ( 't1','t2','t3','t4' ); break; 
 }
}

Правда ещё кода многовато ) но уже есть сдвиги ,,, сильно не критикуйте +)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с Dojo greendoc Dojo toolkit 4 13.10.2011 17:19
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 09:44
Разобраться с autocompleater udaff.es jQuery 0 02.10.2009 23:59
Скрипт калькулятора (не могу добавить еще одно значение) Jee_Day Я не знаю javascript 2 22.05.2009 12:19
Не могу разобраться с туториалом mr.codec jQuery 0 23.03.2009 20:27