正如标题所说,我在.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。
我不确定为什么会这样。遗憾的是,合并文件以使功能和呼叫位于同一位置是不可取的。任何投入将不胜感激。
亲切的问候,Rob
答案 0 :(得分:0)
您可以从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
}
答案 1 :(得分:0)
$('#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
}