javascript确认功能确定并取消返回相同的结果

时间:2014-11-07 18:02:53

标签: javascript jquery

result()方法中,每当涉及到else部分时,我都需要退出函数callthis()。

它不应该执行kumar()函数。

这可能吗? 实际上,我可以这样使用

if(result)          //if this method is true, it will come inside
{
    kumar();
}

但这不是我想要的。从result()方法返回false时,它应该退出循环function calthis()

function calthis()
{
  var i=1;
  if(i==0)
  {
    alert("inside if");
  }
  else
  {
    alert("inside else");
    result();
    kumar();
  }

}
function result()
{
  var res = confirm("are you wish to continue");
  if(res==true)
  {
    return true;
    alert("inside if result");
  }
  else
  {
    return false;
  }
}
function kumar()
{
  alert("inside kumar");
}
<a href="" onclick="calthis();">Click here</a>

3 个答案:

答案 0 :(得分:3)

这里有一堆错误。

首先,if (result)只是测试变量result是否包含真值,它实际上并没有调用该函数。如果要测试函数的返回值,则需要

if (result()) {

其次,您并不了解return 立即离开当前功能。你不能有意义地这样做:

if(res==true)
{
return true;
alert("inside if result");
}

无法联系到alert。遇到return true时,该函数立即返回。

第三,要提前退出callThis,您只需提前return。由函数callThis决定有条件地返回;你不能强迫从result函数内部返回。如果调用它的上下文,函数不能强制返回。它不是result函数的内部结构来确定kumar是否应该运行。您不能直接影响调用方法中的执行路径。所有result可以做的就是返回一些东西,或者(在这种情况下不必要地复杂)接受回调并有条件地执行它。

如果return的结果为false,则callThis只需result()

function calthis()
{
  var i=1;
  if(i==0)
  {
    alert("inside if");
  }
  else
  {
    alert("inside else");
    if (!result()) return;
    kumar();
  }

}

答案 1 :(得分:0)

要退出任何功能,只需使用return;

即可

但是,如果用户点击确认,您似乎想调用一个函数,这是正确的吗?如果是这样的话:

var res = confirm("are you wish to continue");
if (res === true) 
{ 
   kumar(); 
}

如果您想要在用户未单击确认时调用函数:

var res = confirm("are you wish to continue");
if (!res) 
{ 
   kumar(); 
}

答案 2 :(得分:-1)

你有很多令人困惑的代码,但如果想要停止一个功能,只需使用&#34; 返回false; &#34;并且代码执行停止