jquery - 范围在变量中丢失

时间:2014-03-25 10:04:55

标签: javascript jquery jsp

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

 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

现在我不需要失去范围。

例如:

var pat=0;

$.post(
     pat = 1    
);

alert(pat);

它应该警告1而不是o

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

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

要进行同步通话,请查看以下问题:how to make a jquery "$.post" request synchronous