在ajax调用后返回结果

时间:2015-07-08 17:24:05

标签: jquery ajax jquery-mobile jquery-mobile-ajax

我一直在尝试使用ajax编写一个小函数,但我真的很难知道如何返回结果。我在这里看到了一些例子,但我没有设法将它们应用到我的代码中......

//function to detect bespoke page
function PageR(iURL) {
  var theLink;
   $.ajax({
      url: './BSK_'+iURL+'.php', //look to see if bespoke page exists
      success: function(data){
        theLink = ('./BSK_'+iURL+'.php'); //if it does display that page
      },
      error: function(data){
          theLink = ('./'+iURL+'.php'); //if it doesn't display the standard page
      },

    }); //end $.ajax
    return theLink;
};

我希望能够返回theLink将其存储为变量以执行以下操作...

function Nav() {
  var theLink = PageR(nav_newCust);
  $.mobile.changePage(theLink);
};

请帮助!!

3 个答案:

答案 0 :(得分:1)

你为什么不尝试这样的事情:

//function to detect bespoke page
function PageR(iURL, callback) {
  var theLink;
   $.ajax({
      url: './BSK_'+iURL+'.php', //look to see if bespoke page exists
      success: function(data){
        theLink = ('./BSK_'+iURL+'.php'); //if it does display that page
      },
      error: function(data){
          theLink = ('./'+iURL+'.php'); //if it doesn't display the standard page
      },
      complete: function(){
         callback(theLink);
      }
    }); //end $.ajax
};

function Nav() {
  PageR(nav_newCust, $.mobile.changePage);
};

答案 1 :(得分:0)

您应该使用成功回调函数来使用响应数据。在您的代码中,响应由回调函数中的data参数表示。例如:

...
success: function(data){
  theLink = data;
  //do something with theLink
},
...

答案 2 :(得分:0)

你不能这样做,因为你有非阻塞的ajax调用,而且PageR函数总是返回undefined。

试试这个:

function PageR(iURL) {
   $.ajax({
      url: './BSK_'+iURL+'.php',
      success: function(data) {
        $.mobile.changePage ('./BSK_'+iURL+'.php');
      },
      error: function(data){
          $.mobile.changePage ('./'+iURL+'.php');
      },
    });
};