• Страница 1 из 1
  • 1
Самый простой вопрос о вызове функции и проверке аргумента
Crasher
Дата: Воскресенье, 05.09.2010, 02:58 | Сообщение # 1
говорун
Группа: Проверенные
Пользователь №: 3179
Сообщений: 256
Получено оценок: 3
Никогда в жизни не работал с javascript'ом, но знаю что с помощью него можно сделать то, что мне нужно. Есть опыт работы с "неочень серьезным" языком программирования похожим на джаву.
Описывать буду так, как бы это выглядело на языке, который я знаю.
Что я хочу:
на странице вызывается функция, допустим getMenu(1), 1 - аргумент функции - integer, тоесть число - в данном случае от 1 до 5.
В функцие:
Code
if (argument0 == 1) {
        document.write('a1');
} else {
        document.write('a0');
}
if (argument0 == 2) {
        document.write('b1');
} else {
        document.write('b0');
}
if (argument0 == 3) {
        document.write('c1');
} else {
        document.write('c0');
}

Но как правильно сделать саму проверку аргумента и вызовв функции?




Сообщение отредактировал Crasher - Воскресенье, 05.09.2010, 03:02
  
UnderShot
Дата: Воскресенье, 05.09.2010, 09:05 | Сообщение # 2
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
function ooo(){
    var a;
    switch(arguments[0]){
     case 1:a="a1";break;
     case 2:a="b1";break;
     case 3:a="c1";break;
     default:a="d0";
    }
    document.write(a);
}
Может так?


Очень важная тема!
Filmzona — онлайн фильмы.
  
Infamous
Дата: Воскресенье, 05.09.2010, 10:35 | Сообщение # 3
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Code
function getMenu( a ) {
  var char = [ null, 'a', 'b', 'c', 'd', 'e' ];
  for ( var i = 1; i < 6; i++ ) {
   document.write( char[i] + +(a === i) );
  }
};
  
Crasher
Дата: Воскресенье, 05.09.2010, 13:59 | Сообщение # 4
говорун
Группа: Проверенные
Пользователь №: 3179
Сообщений: 256
Получено оценок: 3
UnderShot, switch/case не подойдёт, так как там с else'ами именно нужно. Спасибо за код!
Infamous, как то слишком запутано


  
Infamous
Дата: Воскресенье, 05.09.2010, 14:39 | Сообщение # 5
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Code
function getMenu( a ) {
  var char = [ null, 'a', 'b', 'c', 'd', 'e' ];
  for ( var i = 1; i < 6; i++ ) {
   if ( a === i ) document.write( char[i] + 1 ); else document.write( char[i] + 0 );
  }
};
  
Crasher
Дата: Воскресенье, 05.09.2010, 14:55 | Сообщение # 6
говорун
Группа: Проверенные
Пользователь №: 3179
Сообщений: 256
Получено оценок: 3
А как правильно вызвать функцию из внешнего файла? Как совместить:
Code
<script language="JavaScript" src="menu.js"></script>

и
Code
getMenu(n)




Сообщение отредактировал Crasher - Воскресенье, 05.09.2010, 16:26
  
UnderShot
Дата: Воскресенье, 05.09.2010, 19:10 | Сообщение # 7
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Crasher, в menu.js копипастишь функцию, в любом месте вызываешь.

Очень важная тема!
Filmzona — онлайн фильмы.
  
Crasher
Дата: Воскресенье, 05.09.2010, 19:20 | Сообщение # 8
говорун
Группа: Проверенные
Пользователь №: 3179
Сообщений: 256
Получено оценок: 3
UnderShot, в menu.js - так и сделал. В head страници вставил:
Code
<script language="JavaScript" src="menu.js"></script>

а как вызвать саму функцию, тоесть в каких дескрипторах прописать getMenu(n)?




Сообщение отредактировал Crasher - Воскресенье, 05.09.2010, 19:23
  
Crasher
Дата: Понедельник, 06.09.2010, 19:22 | Сообщение # 9
говорун
Группа: Проверенные
Пользователь №: 3179
Сообщений: 256
Получено оценок: 3
Хмм.. что-то не получается с аргументами.. Вот скрипт:
Code
<script type="text/JavaScript">
function ooo() {
   if (argument0 = 1) {
               document.write('a1');
    } else {
               document.write('a0');
        };
   if (argument0 = 2) {
               document.write('b1');
    } else {
               document.write('b0');
        };
   if (argument0 = 3) {
               document.write('c1');
    } else {
               document.write('c0');
        };
   }
</script>

Вызываем его:
Code
<script type="text/JavaScript">
ooo(1);
</script>

Но при вызове он возвращает a1b1c1, хотя по задумке, при аргументе0 = 1, он бы возвратил a1b0c0.
Если же использовать вместо argument0 - argument[0], то функция вообще ничего не выводит, документ остается пустым.

В чем же проблема?


  
Aleko
Дата: Понедельник, 06.09.2010, 21:11 | Сообщение # 10
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Code
<script type="text/JavaScript">
function ooo(argument) {
    if (argument == 1) {
                document.write('a1');
     } else {
                document.write('a0');
         };
    if (argument == 2) {
                document.write('b1');
     } else {
                document.write('b0');
         };
    if (argument == 3) {
                document.write('c1');
     } else {
                document.write('c0');
         };
    }
</script>


Бесплатные обои.
  
UnderShot
Дата: Понедельник, 06.09.2010, 21:17 | Сообщение # 11
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Может вместо
Code
argument0
нужно
Code
arguments[0]
?


Очень важная тема!
Filmzona — онлайн фильмы.
  
Crasher
Дата: Понедельник, 06.09.2010, 21:53 | Сообщение # 12
говорун
Группа: Проверенные
Пользователь №: 3179
Сообщений: 256
Получено оценок: 3
UnderShot, с arguments[0] так же a1b1c1.
Aleko, спасибо большое, так работает!


  
  • Страница 1 из 1
  • 1
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.