Javascript.RU

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

Флаг функции как переменная
Приветствую!
Подскажите как из такого выражения onclick="newfunc(value)" достать value и присвоить его переменной, то есть
function newfunc() {
var abc = value;
var abcd = value1;
}
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2014, 07:58
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

function newfunc(newvalue){
    var abc = newvalue;
}
Вот только это вопрос нифига не для форума. Это вопрос к самым первым главам любого учебника программирования. Причём даже не обязательно javascript.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2014, 18:31
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

А какой смысл? Называйте сразу получаемый аргумент как Вам больше нравится.

function newfunc(abc) {

}
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2014, 19:06
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Сообщение от Aetae
function newfunc(newvalue){
    var abc = newvalue;
}
Это то понятно, а вот как сделать именно как я спросил?
То есть
newfunc(value)
newfunc(value1)
newfunc(value2)
function newfunc() {
var abc = value;
var abcd = value1;
var abcde = value2;
}
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2014, 21:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

cript, функция вызывается каждый раз, соответственно исполняется каждый раз заново.
Можно изобразить что-то типа стека:
newfunc('value');
newfunc('value1');
newfunc('value2');
function newfunc(value) {
   if(!newfunc.stack) newfunc.stack = [];
   newfunc.stack.push(value);

   if(newfunc.stack.length<3) return;

   var abc = newfunc.stack[0];
   var abcd = newfunc.stack[1];
   var abcde = newfunc.stack[2];
   //работа с этими переменными
   alert([abc, abcd, abcde]);
}
но зачем?..
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 27.04.2014, 21:32
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Сообщение от Aetae
но зачем?..
Не ужели так никто не пытался сделать? Как ни странно в поиске тоже ничего по этому поводу..
Вот например несколько ссылок
<a href="#" onclick="newfunc(value)">Click</a>
<a href="#" onclick="newfunc(value1)">Click1</a>
<a href="#" onclick="newfunc(value2)">Click2</a>
Они вызывают одну функцию, но имеют разное значение.
Сообщение от Aetae
function newfunc(value) {
   if(!newfunc.stack) newfunc.stack = [];
   newfunc.stack.push(value);
   if(newfunc.stack.length<3) return;
   var abc = newfunc.stack[0];
   var abcd = newfunc.stack[1];
   var abcde = newfunc.stack[2];
   //работа с этими переменными
   alert([abc, abcd, abcde]);
}
Это конечно не то..
Ответить с цитированием
  #7 (permalink)  
Старый 28.04.2014, 06:13
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от cript Посмотреть сообщение
<a href="#" onclick="newfunc(value)">Click</a>
<a href="#" onclick="newfunc(value1)">Click1</a>
<a href="#" onclick="newfunc(value2)">Click2</a>
Они вызывают одну функцию, но имеют разное значение.
Ну так при вызове функции разные значения аргумента передаются. А куда эти значения складывать при вызове - это уже другой вопрос.
<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  </head>
  <body>

<script>
function newfunc(x) {
  var abc = x;
  alert(abc);
} 
</script>

<a href="#" onclick="newfunc(111)">Click1</a><br>
<a href="#" onclick="newfunc(222)">Click2</a><br>
<a href="#" onclick="newfunc(333)">Click3</a>

  </body>
</html>

Можно конечно написать код для получения всех аргументов с которыми функции вызываются на ссылках. Что-нибудь типо этого:
<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  </head>
  <body>

<script>
function newfunc() {
  var links = document.querySelectorAll('a[onclick^=newfunc]');
  
  var args = [];
  for(var i = 0; i < links.length; i++) {
    var onclickAttr = links[i].getAttribute('onclick');
    var arg = onclickAttr.match( /newfunc\((.+)\)/ )[1];
    args.push(arg);
  }

  var abc = args[0];
  var abcd = args[1];
  var abcde = args[2];

  alert(abc + ', ' + abcd + ', ' + abcde);
} 
</script>

<a href="#" onclick="newfunc(111)">Click1</a><br>
<a href="#" onclick="newfunc(222)">Click2</a><br>
<a href="#" onclick="newfunc(333)">Click3</a>

  </body>
</html>

Но это абсолютнейшее извращение и так делать не надо.
А вообще, раз такие странные вопросы возникают, то не мешало бы хотя бы основы подучить.

Последний раз редактировалось jsnb, 28.04.2014 в 07:30.
Ответить с цитированием
  #8 (permalink)  
Старый 28.04.2014, 06:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

cript, ни хрена не понял.
Напиши чётко по пунктам от каких действий какого результата ты ожидаешь?
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 28.04.2014, 07:28
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Сообщение от Aetae
от каких действий какого результата ты ожидаешь?
Вообще хотел сделать примерно так:
Кликаю по одной из ссылок
<a href="#" onclick="newfunc(111)">Click1</a>
<a href="#" onclick="newfunc(222)">Click2</a>
<a href="#" onclick="newfunc(333)">Click3</a>
Вызывается функция, которая с помощью ajax вызывает нужный файл, а уже внутри самой функции
if(value == '111')
...
if(value == '222')
...
if(value == '333')
...
и т.д..

Сообщение от jsnb
<script>
function newfunc(x) {
  var abc = x;
  alert(abc);
}
</script>
<a href="#" onclick="newfunc(111)">Click1</a><br>
<a href="#" onclick="newfunc(222)">Click2</a><br>
<a href="#" onclick="newfunc(333)">Click3</a>
Почему то если подставить буквы вместо цифр не срабатывает..
<script>
function newfunc(x) {
  var abc = x;
  alert(abc);
}
</script>
<a href="#" onclick="newfunc(opt)">Click</a>
Ответить с цитированием
  #10 (permalink)  
Старый 28.04.2014, 07:31
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от cript Посмотреть сообщение
<script>
function newfunc(x) {
  var abc = x;
  alert(abc);
}
</script>
<a href="#" onclick="newfunc(opt)">Click</a>
Потому что переменная opt не определена. Пиши так:
onclick="newfunc('opt')"


Сообщение от cript Посмотреть сообщение
Вообще хотел сделать примерно так:
Кликаю по одной из ссылок
<a href="#" onclick="newfunc(111)">Click1</a>
<a href="#" onclick="newfunc(222)">Click2</a>
<a href="#" onclick="newfunc(333)">Click3</a>
Вызывается функция, которая с помощью ajax вызывает нужный файл, а уже внутри самой функции
if(value == '111')
...
if(value == '222')
...
if(value == '333')
...
и т.д..
Что значит "вызывает нужный файл"? Какой-то код аяксом подгружается или что? Ну а насчет твоих if вообще не понимаю в чем проблема. Так и пиши. Только вместо value имя переменной-аргумента которое было задано при создании функции. Например:
<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  </head>
  <body>

<script>
function newfunc(x) {
  if (x == 'aaa') {
    alert(111);
  }
  if (x == 'bbb') {
    alert(222);
  }
  if (x == 'ccc') {
    alert(333);
  }
} 
</script>

<a href="#" onclick="newfunc('aaa')">Click1</a><br>
<a href="#" onclick="newfunc('bbb')">Click2</a><br>
<a href="#" onclick="newfunc('ccc')">Click3</a>

  </body>
</html>

Последний раз редактировалось jsnb, 28.04.2014 в 07:45.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как извлечь адрес картинки, указанный внутри функции onclick? sidarvik Events/DOM/Window 19 04.02.2013 01:05
Как скрыть содержимое функции? ananax Общие вопросы Javascript 3 17.01.2013 09:28
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 19:21
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 14:13
bind: как передать функции указатель на объект trial jQuery 4 25.05.2010 01:35