关于javascript:jquery – 范围在变量中丢失

jquery - scope getting lost in variable

我正在开发应用程序,它将获得一些与我的问题无关的动态内容。 问题是

1
2
3
4
5
6
 var pat;
 $.post('venki/path.jsp', { nam:nam } , function(data) {
     pat=data;
     alert(pat); //it will displayed the received code form path.jsp  
 });
 alert(pat);// it will not keep the data received from path.jsp

现在我不需要失去范围。

例如:

1
2
3
4
5
6
7
var pat=0;

$.post(
     pat = 1    
);

alert(pat);

它应该警告1而不是o

在java中,我应该使用static。 在jquery中,如何声明静态变量。

得到了答案:
它简单而且非常实用,无需担心同步。 答案很棘手......


这是因为当您提示拍拍值时,发布请求未完成。 要确保修改该值,请在post success function中提醒它:

1
2
3
4
5
var pat;
 $.post('venki/path.jsp', { nam:nam } , function(data) {
    pat=data;
    alert(pat); //modified value  
  });


如果我没弄错的话,$.post是异步的,所以pat不会丢失它的范围,而是在执行pat=data之前执行

要使它成为同步调用,请查看以下问题:如何使jquery"$ .post"请求同步