Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2011, 12:28
Интересующийся
Отправить личное сообщение для see613 Посмотреть профиль Найти все сообщения от see613
 
Регистрация: 20.04.2011
Сообщений: 24

Вопрос про события
может кто знает, почему
$('.A').live('click', function(){
                alert('.A');
   	    }); 
        $('.B').live('click', function(){
                alert('.B');
   	    });

работает, а
var selectorArr = ['A', 'B'];        
        var selectorArr   = ['A', 'B'];        
        var classArr      = [];
            classArr['A'] = '.A';
            classArr['B'] = '.B'; 

        for (var key in selectorArr) {
            var name     = selectorArr[key];
            var selector = classArr[name];

            $(selector).live('click', function(){
                alert(selector);
       	    });            
    	       
    	}

не работает, вместо этого он на оба селектора будет выводить в алерте '.B', причем не просто .B, а именно последний элемент в selectorArr, тоесть если поменять местами -
var selectorArr = ['B', 'A'];

то будет всегда выводить '.A'. Если поставить еще алерт в for за пределами live, и вывести name и selector, то в нем выведет всё как надо. в фаербаге смотрел объекты event-ов - в обоих случаях, всегда одни и те же. WTF
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2011, 12:45
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

http://javascript.ru/basic/closure#p...-ispolzovaniya
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2011, 21:32
Интересующийся
Отправить личное сообщение для see613 Посмотреть профиль Найти все сообщения от see613
 
Регистрация: 20.04.2011
Сообщений: 24

спасибо, можно закрыть тему
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2011, 21:44
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Осталось только расширить Array.prototype и прювет
Ответить с цитированием
  #5 (permalink)  
Старый 06.06.2011, 22:32
Интересующийся
Отправить личное сообщение для see613 Посмотреть профиль Найти все сообщения от see613
 
Регистрация: 20.04.2011
Сообщений: 24

к сожалению, мое кунг-фу не настолько хорошо, чтоб сходу понять что даст расширение массива в данном случае, поэтому актуально было б сказать - намекнитеподскажите
Ответить с цитированием
  #6 (permalink)  
Старый 06.06.2011, 22:40
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Почитай.
Ответить с цитированием
  #7 (permalink)  
Старый 06.06.2011, 23:44
Интересующийся
Отправить личное сообщение для see613 Посмотреть профиль Найти все сообщения от see613
 
Регистрация: 20.04.2011
Сообщений: 24

ну насколько я понял в моем случае, for in не должен натворить ни какой лабуды, так как я задаю массив, у него нет доп.свойств, да и на порядок чихать, поэтому это вполне жизнеспособный вариант.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по создании функции для события com-meta jQuery 2 01.10.2010 14:59
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
вопрос про <select> Krondor Общие вопросы Javascript 2 25.11.2009 17:04
Вопрос про отправку данных методом Post QQQ AJAX и COMET 1 15.07.2009 23:27
Вопрос про вызов события onClick skyfish Общие вопросы Javascript 12 27.12.2008 19:12