Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2010, 18:41
Аспирант
Отправить личное сообщение для igsavenko Посмотреть профиль Найти все сообщения от igsavenko
 
Регистрация: 15.01.2010
Сообщений: 83

есть вопрос по each
function foo() {
         var variable;
         $('#block-taxonomyblocks-2 div div ul li').each( function() {
            if($(this).hasClass('active')) {
                variable = true;
                return variable;
            }
            else {
                variable = true;
                return variable;
            }
            alert(variable);
        });
        alert(1);
        return variable;
    }
    var lhca = foo();
    alert(lhca);


Почему alert(1) срабатывает первым? и как решить эту проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2010, 18:49
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Потому что foo запускается до второго алерта. Уберите () в 17-ой строке.

А если вы про алерт, который в each, тут просто в любом случае return возвращает значение, вычисленное ф-цией, а всё остальное просто игнорируется.

Последний раз редактировалось exec, 17.08.2010 в 18:51.
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2010, 19:06
Аспирант
Отправить личное сообщение для igsavenko Посмотреть профиль Найти все сообщения от igsavenko
 
Регистрация: 15.01.2010
Сообщений: 83

Почему то не работает return цикл не прерывается
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2010, 19:08
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

А зачем его прерывать?

P.S. можно просто написать:

$('#block-taxonomyblocks-2 div div ul li.active')
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2010, 19:50
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от igsavenko Посмотреть сообщение
Почему то не работает return цикл не прерывается
А он и не должен прерываться при возврате чего-то, each проходит по всем элементам this и выполняет для каждого код. А прервать each можно, если вернуть false из обработчика.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
У меня есть вопрос rzhsasha Firefox/Mozilla 29 08.12.2010 18:48
Вопрос о циклических ссылках (JavaScript -> Dom -> JavaScipt) BlueIce Events/DOM/Window 10 17.02.2010 21:58
Есть вопрос по Javascript JsLoveR Opera, Safari и др. 1 23.12.2009 01:04
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 09:20