繁体   English   中英

Javascript代码块在返回被调用函数的结果之前完成? 我错过了什么?

[英]Javascript code block finishes BEFORE it gets back the result of a called function? What am I missing?

正如标题所说,我在.JS文件中有一块Javascript代码。 这里我在一个单独的ASCX文件中调用一个函数来改变x变量。

$('#button').bind('click', function (event) {
Function();

if(x == true){do something}
if(x == false){do something else}
});

在ASCX文件中,我有变量和函数:

var x;
function Function(){
if(y > 100)
x = true
if(y < 100)
x = false
}

我希望,如果单击按钮,函数将执行(它执行),变量将根据条件(也会发生)而改变。 但是,代码使用的值是代码运行之前的x值。

因此,如果在单击按钮之前x为真,并且单击按钮,则结果将始终评估为true,即使y的条件实际上应该将x计算为false。

我不确定为什么会这样。 遗憾的是,合并文件以使功能和呼叫位于同一位置是不可取的。 任何投入将不胜感激。

亲切的问候,罗布

您可以从Function返回它。 您可以使用返回值进一步检查。

您不需要在调用上下文中分配和检查更新。

一个JS文件:

$('#button').bind('click', function(event) {
    x = Function();

    if(x == true) { //do something }

    if(x == false) { 
        //do something else
      }
});

第二个JS文件:

function Function() {
    if (y > 100)
        return true
    if (y < 100)
        return false
}
$('#button').bind('click', function (event) {
   x= Function();

    if(x == true){/*do something*/}
    if(x == false){/*do something else*/}
});

var x;
var y = 10;

function Function(){
    if(y > 100)
        x = true
    if(y < 100)
        x = false
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM