1

我有一个点击功能会先加载页面,然后继续剩下的过程。

我的问题是在第一次单击时,“继续此处”将在$.get()功能后停止。

但是,在第二次单击时它将正常工作。

.click(){
  $.get(url, function(data){ content = data; } );

  // Continue here
  var x = content or etc...

}

有人对此有想法吗?我确定问题来自ajax加载,我有办法逃避这个吗?感谢您的意见!

4

2 回答 2

2

Get是异步的,你必须把你的代码放在函数里面

.click(){
  $.get(url, function(data){ 
    var content = data; 

    // Continue here
    var x = content; // or etc...
  });
}
于 2012-12-28T07:05:43.717 回答
1

您没有发布太多代码,但我猜问题是由于您的get调用是异步的。因此,您的变量content还不存在。

.click(){
  $.get(url, function(data){ 
        content = data; } 
 );

 // Continue here
 var x = content; 

 //but content isn't anything yet because GET has not yet returned from the server. 
 //By the time you click a second time, the data has finally round tripped.

你必须在你的回调中做 X 。

.click(){
   $.get(url, function(data){ 
        content = data; 
        var x = content;
    } 
);
于 2012-12-28T07:05:15.917 回答