Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2014, 11:17
Аспирант
Отправить личное сообщение для pashin76 Посмотреть профиль Найти все сообщения от pashin76
 
Регистрация: 03.10.2009
Сообщений: 57

Как "красивее" передать переменные в функцию
Есть элементы с ID от a11 до a50

При клике на элемент a11 нужно передавать функции validate две переменных b=1 и c=1
При клике на элемент a50 нужно передавать b=5 и c=0 соответственно

В голову приходит два варианта, но оба они мне кажутся корявыми

Вариант 1:
$("#a11").click(validate(1,1));
.......
$("#a50").click(validate(5,0));


Вариант 2:
<span id="a11" onclick="validate(1,1); return false;">текст</span>
.......
<span id="a50" onclick="validate(5,0); return false;">текст</span>


Можно ли как-то выдергивать эти переменные из ID?

Последний раз редактировалось Octane, 02.04.2014 в 11:25. Причина: форматирование
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2014, 11:29
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

function validate(event) {

	var $element = $(this),
		value1 = $element.data("value1"),
		value2 = $element.data("value2");
		…
}

$("#a11").click(validate);
.......
$("#a50").click(validate);

<span id="a11" data-value1="1" data-value2="1">текст</span>

<span id="a50" data-value1="5" data-value2="0">текст</span>
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2014, 11:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

чтоб неперечислять
Цитата:
$("#a11").click(validate);
.......
$("#a50").click(validate);
$("[id^='a']").click(validate);
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2014, 11:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от pashin76
Вариант 1:
$("#a11").click(validate(1,1));
.......
$("#a50").click(validate(5,0));
Так не будет работать...
Ответить с цитированием
  #5 (permalink)  
Старый 02.04.2014, 11:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от pashin76
Можно ли как-то выдергивать эти переменные из ID?
Можно.
Для этого можно использовать метод
http://javascript.ru/String/substring
Ответить с цитированием
  #6 (permalink)  
Старый 02.04.2014, 11:42
Аспирант
Отправить личное сообщение для pashin76 Посмотреть профиль Найти все сообщения от pashin76
 
Регистрация: 03.10.2009
Сообщений: 57

Сообщение от рони Посмотреть сообщение
чтоб неперечислять

$("[id^='a']").click(validate);
Не понял, как это будет работать?
Ответить с цитированием
  #7 (permalink)  
Старый 02.04.2014, 12:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

pashin76,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function ()
{
   function validate(event) {

	var $element = $(this),
		value1 = $element.data("value1"),
		value2 = $element.data("value2");
	   alert([value1,value2])
}

   $("[id^='a']").click(validate);
})
  </script>
</head>

<body>

<span id="a11" data-value1="1" data-value2="1">текст</span>
<span id="a50" data-value1="5" data-value2="0">текст</span>


</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 02.04.2014, 12:52
Аспирант
Отправить личное сообщение для pashin76 Посмотреть профиль Найти все сообщения от pashin76
 
Регистрация: 03.10.2009
Сообщений: 57

теперь понял
всем спасибо, то что нужно
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать функцию с параметрами в качестве аргумента другой функции DragorWW Общие вопросы Javascript 11 08.01.2013 16:59
Передать переменные из fancybox Slavk0 jQuery 0 21.11.2012 14:15
setInterval как передать переменную в функцию kamushek Общие вопросы Javascript 6 02.09.2011 23:53
Как передать в функцию значение а не ссылку на переменную? Ghaniball Общие вопросы Javascript 4 02.09.2011 18:24
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11