Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   есть вопрос по each (https://javascript.ru/forum/jquery/11313-est-vopros-po-each.html)

igsavenko 17.08.2010 18:41

есть вопрос по 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) срабатывает первым? и как решить эту проблему?

exec 17.08.2010 18:49

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

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

igsavenko 17.08.2010 19:06

Почему то не работает return :( цикл не прерывается :(

exec 17.08.2010 19:08

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

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

$('#block-taxonomyblocks-2 div div ul li.active')

e1f 17.08.2010 19:50

Цитата:

Сообщение от igsavenko (Сообщение 67708)
Почему то не работает return :( цикл не прерывается :(

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


Часовой пояс GMT +3, время: 02:12.