Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.09.2011, 15:42
Интересующийся
Отправить личное сообщение для 4ildren Посмотреть профиль Найти все сообщения от 4ildren
 
Регистрация: 28.10.2009
Сообщений: 18

Нет-нет, что вы ))
Имелось в виду: "похоже ли с виду на правду" ))
Спасибо. Ушел тестировать.
Ответить с цитированием
  #12 (permalink)  
Старый 29.09.2011, 21:04
Интересующийся
Отправить личное сообщение для 4ildren Посмотреть профиль Найти все сообщения от 4ildren
 
Регистрация: 28.10.2009
Сообщений: 18

Протестировал. Не работает.
Пытаюсь вызвать alert по клику (см. код ниже) - возвращает undefined.
Если вызывать alert вне функции клика (а до неё), возвращает подряд все три значения массива, а по клику - нет. =(
for (var i=0; i<size.length; i++) {  
            $('#[*id*] .sort a#' + size[i]).click(function(e) { alert(size[i]);
	    $('#[*id*] .all').quicksand( $('#[*id*] .format' + size[i] + ' li'));
	                                        e.preventDefault();
			});
}
Ответить с цитированием
  #13 (permalink)  
Старый 29.09.2011, 22:50
Интересующийся
Отправить личное сообщение для 4ildren Посмотреть профиль Найти все сообщения от 4ildren
 
Регистрация: 28.10.2009
Сообщений: 18

Если точнее, то в функцию не передаётся значение [i]. Если написать просто alert(size), вернет все значения массива через запятую, а не то, по которому случилось событие .click();

UPD: Иными словами, как передать переменную цикла в функцию, которая начинается внутри этого цикла. Гугл ничего дельного (ну, или мне понятного) не выдаёт =(

Последний раз редактировалось 4ildren, 29.09.2011 в 23:06.
Ответить с цитированием
  #14 (permalink)  
Старый 30.09.2011, 01:45
Интересующийся
Отправить личное сообщение для 4ildren Посмотреть профиль Найти все сообщения от 4ildren
 
Регистрация: 28.10.2009
Сообщений: 18

Решение нашлось вот тут: http://www.cyberforum.ru/javascript-...ead337692.html
Работающий код в итоге такой:
var size = ("small","medium","large");
var st = ("west", "gypsy", "xix", "horse", "extreme", "moscow");

for (var i=0; i<size.length; i++) { 
			(function(n){
				$('.sort a#' + size[n]).click(function(e) {
					$(pid + ' .all').quicksand( $(pid + ' .format' + size[n] + ' li'));
	                                        e.preventDefault();


		for (var j=0; j<st.length; j++) { 
					(function(m){
						$("a#style" + st[m]).click(function(e){
							$(pid + ' .all').quicksand( $(pid + ' #' + size[n] + st[m] + ' li'));
									e.preventDefault();
						});
					})(j);
		}
				});
			})(i);
}
Ответить с цитированием
  #15 (permalink)  
Старый 30.09.2011, 09:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от 4ildren Посмотреть сообщение
Решение нашлось вот тут: http://www.cyberforum.ru/javascript-...ead337692.html
Работающий код в итоге такой:
var size = *!*("small","medium","large");*/!*
var st = *!*("west", "gypsy", "xix", "horse", "extreme", "moscow");*/!*
...
работающий ??
Ответить с цитированием
  #16 (permalink)  
Старый 30.09.2011, 23:27
Интересующийся
Отправить личное сообщение для 4ildren Посмотреть профиль Найти все сообщения от 4ildren
 
Регистрация: 28.10.2009
Сообщений: 18

var size = new Array();
size[0] = "small";
size[1] = "medium";
size[2] = "large";

var st = new Array();
st[0] = "west";
st[1] = "gypsy";
st[2] = "xix";
st[3] = "horse";
st[4] = "extreme";
st[5] = "moscow";

Вот с этим. Да.
P.S.: Для поисковиков и ищущих. В этой теме были решены такие проблемы, как: "оптимизировать javascript jquery код, сократить код, массивы, переменная цикла не передаётся в функцию, функция внутри цикла, передать переменную в функцию, массив не работает в функции."

Последний раз редактировалось 4ildren, 30.09.2011 в 23:33.
Ответить с цитированием
  #17 (permalink)  
Старый 30.09.2011, 23:43
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

можно было просто круглые скобки заменить на квадратные
var size = ["small","medium","large"];
var st = ["west", "gypsy", "xix", "horse", "extreme", "moscow"];
...
Ответить с цитированием
  #18 (permalink)  
Старый 01.10.2011, 00:04
Интересующийся
Отправить личное сообщение для 4ildren Посмотреть профиль Найти все сообщения от 4ildren
 
Регистрация: 28.10.2009
Сообщений: 18

Синтаксис, синтаксис и ещё раз синтаксис ))
Частным преподавательством не занимаетесь по JS? ))
Ответить с цитированием
  #19 (permalink)  
Старый 01.10.2011, 00:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

о нет. вы на возраст посмотрите ) какое преподавательство - я только сам в этом году начал их слушать
Ответить с цитированием
  #20 (permalink)  
Старый 01.10.2011, 01:41
Интересующийся
Отправить личное сообщение для 4ildren Посмотреть профиль Найти все сообщения от 4ildren
 
Регистрация: 28.10.2009
Сообщений: 18

А мне казалось, что возраст не влияет на степень квалификации в некоторых случаях.
Я, когда мне было 18, преподавал бизнес-английский взрослым дядечкам и тётечкам и они были довольны =)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Json и вложенные массивы ArmagedDance jQuery 6 08.06.2011 12:42
функции и массивы maxas Элементы интерфейса 7 28.03.2011 22:23
JavaScript PHP MySQL массивы Володя Общие вопросы Javascript 4 13.02.2011 22:55
Массивы и функции.. Ну Я дуб! Элементы интерфейса 4 09.11.2009 20:36
JS и массивы big Общие вопросы Javascript 4 21.12.2008 14:24