2015-04-26 8 views
1

Я ожидаю, что это было задано раньше, но я искал и не могу найти правильный ответ.полностью выйти из функции jquery из функции, вызванной из функции

Если функция вызывается, и при выполнении этой функции другой используется для проверки чего-либо, как можно остановить начальную функцию от второй функции?

a(1); 
function a(v){ 
    check(v); 
    alert "value correct"; 
    // continue 

} 

function check(v){ 
    if (v!=1){ 
     alert "stop here number wrong"; 
     return; 
    } 
} 

ответ

2

У вас есть два варианта: пройти вверх возвращаемое значение или просто return, когда вам нужно.

Демо Использование Зачет-Up Возвращаемое значение

a(1); 
 
function a(v){ 
 
    var stopped = false; 
 
    if (v==1){ 
 
     stopped = stop(); 
 
    } 
 
    if (stopped) { 
 
     return; 
 
    } 
 
    alert("did not stop"); 
 
} 
 

 
function stop(){ 
 
    alert("I want it to stop here"); 
 
    return true; 
 
}

Demo С Simple Return

Еще проще: просто return, когда вы звоните stop():

a(1); 
 
function a(v){ 
 
    if (v==1){ 
 
     stop(); 
 
     return; 
 
    } 
 
    alert("did not stop"); 
 
} 
 

 
function stop(){ 
 
    alert("I want it to stop here"); 
 
}

P.S. Вы не можете сделать alert "foo"; - вам нужны скобки, например alert("foo");.

+0

спасибо за ответ, ive отредактировал его, чтобы лучше объяснить – nathan

+0

Я посмотрел ваши правки, но я не уверен, почему мой ответ не сработает для вас. Можете ли вы объяснить, почему это не так? Или, если это так, не забудьте выбрать ответ! :) –

+0

Привет, ваш код хорош, но не то, что я ищу Извините, я пытаюсь удалить IF из начальной функции и только иметь его в функции stop(), когда я вставляю второе редактирование, так как у меня будет несколько, чтобы проверить разные значения, еще раз спасибо – nathan

1

ли что-то вроде этого:

a(1); 
function a(v){ 
    if (v == 1){ // don't do anything } 
    else { /** DO SOMETHING **/ } 

} 
+1

спасибо за ответ, ive отредактировал его, чтобы объяснить лучше – nathan

1

Have возврата функции, когда вы хотите остановить работу

См комментарии в коде ниже изменений:

a(1); 
 

 
function a(v) { 
 

 
    if (v == 1) { 
 
    // You may not even need this function 
 
    // Just place a return 0; instead 
 
    stop(); 
 

 
    // Have the parent function stop executing 
 
    // As well as the child function 
 
    return 0; 
 
    } 
 

 
    // Make sure to use parenthesis() 
 
    // When using "alert" function 
 
    alert("did not stop"); 
 
} 
 

 
function stop() { 
 
    alert("I want it to stop here"); 
 
    return 0; 
 
}

Смежные вопросы