Javascript.RU

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

Jquery вопрос по функции
$(function() {
var idNumbers = 6;
for(var i=1; i<=idNumbers; i++) {
	var result_class = "'" + '.image_data' + i + "'";
    $('ul#options li img').click(function() {
        $('ul#options li img').removeClass('selected');
        $(this).addClass('selected');
        var imageName = $(this).attr('alt')
		$(result_class).attr('value', imageName);
    });

    $('.image_url').click(function() {
        return false;
    });
}
});

Помогите пожалуйста! Не могу понять почему значение переменной result_class не попадает в строчку:
$(result_class).attr('value', imageName);
Ответить с цитированием
  #2 (permalink)  
Старый 21.02.2011, 23:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

$(function() {
    $('ul#options li img').click(function() {
        var $i = 6, $this = $(this), $imageName = $this.attr('alt');
        while($i--) {
            $('.image_data' + $i).attr('value', $imageName);
        }
        $('ul#options li img').removeClass('selected');
        $this.addClass('selected');
    });
    
    $('.image_url').click(function(event) {
        event.preventDefault();
    });
});
Ответить с цитированием
  #3 (permalink)  
Старый 22.02.2011, 00:36
Интересующийся
Отправить личное сообщение для rostrid Посмотреть профиль Найти все сообщения от rostrid
 
Регистрация: 17.02.2011
Сообщений: 11

Спасибо огромное! А как сделать еще чтобы допустим эта же переменная подставлялась сюда тоже: 'ul#options' + $i + ' li img'
Ответить с цитированием
  #4 (permalink)  
Старый 22.02.2011, 05:07
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

$("UL#options").eq($i).find("LI IMG");
Ответить с цитированием
  #5 (permalink)  
Старый 22.02.2011, 12:56
Интересующийся
Отправить личное сообщение для rostrid Посмотреть профиль Найти все сообщения от rostrid
 
Регистрация: 17.02.2011
Сообщений: 11

Не могу понять почему если вынести переменную за пределы функции то он видит ее максимум на уровне первой функции, подфункция уже эту переменную не видит!
Ответить с цитированием
  #6 (permalink)  
Старый 22.02.2011, 13:05
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Переменные действуют только в текущей области видимости.

var k;
(function () {
	var u;
	// Здесь доступны u и k
	(function () {
		var r;
		// Здесь доступны u, k и r
	})();
	// Здесь r уже недоступна
})();
// Здесь u уже недоступна
Ответить с цитированием
  #7 (permalink)  
Старый 22.02.2011, 13:13
Интересующийся
Отправить личное сообщение для rostrid Посмотреть профиль Найти все сообщения от rostrid
 
Регистрация: 17.02.2011
Сообщений: 11

Тогда, я совсем запутался) почему не работает подстановка значения вместо переменной в данном скрипте:
var $z = 6;
while($z--) {
$(function() {
	 

		 
    $('ul#options' + $z + ' li img').click(function() {
       		$this = $(this), $imageName = $this.attr('alt');
        	
            $('.image_data' + $z).attr('value', $imageName);
        	
        	$('ul#options' + $z + ' li img').removeClass('selected');
        	$this.addClass('selected');
    });
	
    $('.image_url').click(function(event) {
        event.preventDefault();
    });
});
}
Ответить с цитированием
  #8 (permalink)  
Старый 22.02.2011, 13:47
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

В третьей строке навешивается обработчик события DOMContentLoaded. На момент наступления этого события цикл уже завершён, переменная $z равна нулю.
Ответить с цитированием
  #9 (permalink)  
Старый 22.02.2011, 14:01
Интересующийся
Отправить личное сообщение для rostrid Посмотреть профиль Найти все сообщения от rostrid
 
Регистрация: 17.02.2011
Сообщений: 11

Есть ли тогда рабочая альтернатива тому, что я пытался сделать?
Ответить с цитированием
  #10 (permalink)  
Старый 22.02.2011, 14:12
Новичок на форуме
Отправить личное сообщение для sanderlake Посмотреть профиль Найти все сообщения от sanderlake
 
Регистрация: 22.02.2011
Сообщений: 4

не пиши в цикле эту функцию $(document).ready, а цикл в ней пиши. Так:

$(function() {
  while(){}
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по jquery - как узнать какой тэг? APL Общие вопросы Javascript 7 09.06.2016 15:22
Вопрос по создании функции для события com-meta jQuery 2 01.10.2010 14:59
Вопрос по функции call() Ozerich Общие вопросы Javascript 5 26.08.2010 09:38
Вопрос про $ в jquery vvsh Общие вопросы Javascript 6 06.09.2009 18:50
Вопрос по функции Flex Общие вопросы Javascript 3 05.12.2008 04:03