Javascript variable scope(?)
Javascript variable scope(?)
我的老板让我在我们正在开发的网站的几个页面上添加一些Javascript。我是一个彻头彻尾的Javascript菜鸟(我本质上是一个PHP程序员),但是我已经学习和使用Javascript两天了,直到现在,一切都很顺利。
现在我遇到了一个问题。我认为这与变量作用域有关,我以为我理解变量作用域,但我正在努力完成这个非常(可能)非常简单的任务。如果我有更多的时间来学习如何使用JS,我会在来找你们之前再碰碰它,但我需要在下周一之前找到一些可行的东西。我接近..
代码如下,解释如下。
var activeTopic;
$.post("test.php",
{
request:"getActiveSection",
courseid:courseid
},
function (data, status) {
if (data != "none") {
activeTopic = data;
displayActiveTopic();
}
});
alert(activeTopic);
我正在使用Jquery的POST函数来调用test.php。PHP 获取课程 ID 并返回当前活动的主题。PHP 代码返回正确的值。我知道这一点,因为如果我警报(数据);,就会显示正确的值。
但是,如果我alert(activeTopic);在函数之外,我注意到全局变量activeTopic没有改变。为什么?
提前感谢您的帮助。当我有时间时,我会花更多的精力来学习JS。到目前为止,这很有趣...与PHP非常不同,但仍然很有趣。
这与范围无关,而与时间有关。
- 您声明了一个变量
activeTopic
。 - 您发送 HTTP(发布)请求
- 您提醒
activeTopic
稍后,当 HTTP 响应到达时,会为 activeTopic
分配一个值。
您需要处理当前为activeTopic
赋值的回调函数中的数据。
$.post 是一个异步函数。因此,当调用 alert() 时,帖子仍在运行。将警报放入回调函数中,该函数将在 post 调用结束时调用。
相关文章:
- AngularJS:ng之后,重复$scope值未按预期更新
- $ionicplatform内的$scope不;不起作用
- 从jQuery调用存储在Variable中的函数
- 使用$scope方法时的ControllerAs语法
- 如何将ngrepeat下的ngmodel绑定到$scope
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- $scope变量被视为字符串AngularJs
- ng在更新$scope后重复不更新信息
- 正在获取Angular以检测$scope中的更改
- 如何惯用地手动销毁scope&在AngularJS中重新创建
- Understanding Javascript scope with "var that = this&qu
- AngularJS,angular.element($0).scope()揭示了每个控制器的函数
- 获取Div Width,然后更新Scope Variable
- AngularJS $scope.variable 是未定义的
- 结果中有 scope.variable 的 ng-attr- 表达式
- jQuery $.each variable Scope
- jQuery clearInterval undifined variable scope issue
- javascript setInterval() and Variable Scope
- Javascript variable scope(?)