2010-04-08 6 views

답변

11

을 스크롤 한 ** 수정 : 추가 자세한 세부 사항.

function foo() { 
    var doreturn = false; 
    jQuery(whatever).each(function() { 
    if(youwanttoreturn){ 
     doreturn=1; 
     return false; 
    } 
    }); 
    if(doreturn)return; 
} 

http://api.jquery.com/each/ 이 ** 부모 함수에서 반환 할 수 있도록 플래그를 사용하여 "우리는 false를 반환하여 콜백 함수 내에서 루프를 중지 할 수 있습니다."

+1

그는 "foo"에서 돌아 오기를 원합니다! – Pointy

+1

+1 변수를 사용합니다. try/catch를 사용하는 것보다 약간 빠릅니다. 이것 좀 봐 jsPerf 내가 만든 : http://jsperf.com/returning-a-parent-function-from-inside-a-child –

4

.

편집 아, 하, 하,은 "foo는에서"오른쪽 :

는이를 위해, 당신이 시도 사용할 수 있습니다/캐치

function foo() { 
    try { 
    jQuery('whatever').each(function() { 
     if (noMoreFoo()) throw "go"; 
    }); 
    } 
    catch (flag) { 
    if (flag === "go") return; 
    throw flag; 
    } 
} 
+1

. 이 jsPerf를보세요. http://jsperf.com/returning-a-parent-function-from-inside-a-child –

1

아니요. 이 의지의 빈민가 당신이 원하는 (내가 생각하는) 무엇을 : 약간 빠른 시도/캐치를 사용하는 것보다 반환해야합니다 있는지 확인하는 변수를 사용하고

function foo() { 
    var bar=null; 
    $(whatever).each(function() { 
     bar="bar"; 
     return false; 
    }); 
    return bar; 
} 
var fooResults = foo(); 
+0

+1 "게토 do"에 대한 – iamwhitebox

0
function foo() { 
    $result = false; 
    jQuery(whatever).each(function() { 
      $result = true; 
    }); 
    // We will reach this point after the loop is over. 
    return $result; 
} 
+0

?? 나는 그것이 무엇이든을 전혀 할 것이라는 점을 생각하지 않는다; jQuery에 관한 한 '반환'과 같은 가치가 없습니다. – Pointy

+0

@ 포인트 감사합니다. –