2013-04-04 92 views
0

我使用fork of Pageguide.js來介紹一些關於使用我的web應用程序的各種頁面的指導。此作品不錯,但在目前的所有內容爲導遊在腳本中的靜態設置:

var guide = { 
    id: 'jQuery.PageGuide', 
    title: 'What can I do here?', 
    steps: [ 
    { 
     target: '#user-tools', 
     content: 'Some static content here' 
    } 
    ] 
} 

$(function() { 
    // Load the default guide! 
    $.pageguide(guide); 
}); 

我想要的內容動態地使用$ajax調用服務器檢索,所以我改變了我的代碼下面添加$ajax電話:

var guide = { 
    id: 'jQuery.PageGuide', 
    title: 'What can I do here?', 
    steps: [ 
    { 
     target: '#user-tools', 
     content: function() { 
     $.ajax({ 
      type: 'GET', 
      url: 'user-guide', 
      data: {elementId: '#user-tools'}, 
      success: function(html) { 
      return html; 
      } 
     }); 
     } 
    } 
    ] 
} 

雖然$ajax調用似乎工作確定(我檢查使用Chrome調試器,我可以看到返回正確的HTML沒有出現任何錯誤日誌中),該指南沒有更新從服務器返回的HTML。

我在做什麼錯?

+5

*您不能返回*從阿賈克斯,剛上成功運行的一些代碼*。 – VisioN 2013-04-04 22:28:40

回答

1

這不起作用,內容將包含一個XHR對象。你can't return data from an asynchronous AJAX call。你需要運行的代碼後的AJAX返回:直接從`success`處理

$.ajax({type: 'GET',url: 'user-guide', data: {elementId: '#user-tools'}}).done(function(html){ 
    var guide = { 
     id: 'jQuery.PageGuide', 
     title: 'What can I do here?', 
     steps: [{target: '#user-tools',content:html}] 
    }; 
    //rest of your code goes here  
});