может кто знает, почему
$('.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