2011-10-09 66 views
0

我正在使用搜索飛行API,並且我想在加載API時設置一些設置。jQuery:如果API加載成功,請執行功能

下面是API的加載方式:

skyscanner.load('snippets', '1'); 
function main(){ 
    var snippet=new skyscanner.snippets.SearchPanelControl(); 
    snippet.setCurrency('GBP'); 
    snippet.setDeparture('uk'); 
    snippet.draw(document.getElementById('snippet_searchpanel')); 

    } 
skyscanner.setOnLoadCallback(main); 

這是我嘗試過,但似乎並沒有工作:

skyscanner.load('snippets', '1', function (responseText, textStatus, XMLHttpRequest) { 
      if (textStatus == "success") { 
       alert(test); 
      } 
    }); 

回答

2
alert(test); 

哪裏test?也許這應該是alert("test")
UPDATE:
好了,我只是看着Skyscanner上的API:http://api.skyscanner.net/api/ajax/documentation.html
這裏是負載的功能:

skyscanner.load(<i>moduleName, moduleVersion, optionalSettings</i>)  

看來,第三個參數是不是onload事件。
你可能只是測試:

skyscanner.setOnLoadCallback(function(){ 
    alert("test"); 
}); 
skyscanner.load('snippets', '1'); 
+0

詳細說明一下,代碼寫入「test」的方式是一個函數調用,它可能不是函數。你可能打算通過字符串「測試」。 – ryantm

+0

@RyanTM您是如何得出''test'是一個函數調用'的結論? – wong2

+0

我還沒有得出這個結論。 – ryantm

2

看起來Skyscanner上已經有一個onload回調,並且已經將其設置爲「主()」,你會不會只是把你的代碼需要它是(也許在最後)的功能?

我不知道天空掃描儀的API,所以我不知道他們的「load()」函數是否需要第三個參數。它看起來好像不可能,因爲它們顯然提供了單獨的函數setOnLoadCallback()。

+0

我試了一下,先生,它似乎並不工作 – jQuerybeast

+0

公平的。你嘗試了什麼,它做了什麼? –

+0

我試過了skyscanner.setOnLoadCallback(main,alert(「test」));並且它在加載內容之前發出警報。我還在主功能結束時添加了警報。同樣,它在內容顯示之前就發出警報。我試圖想到一個周圍的解決方案。就像,如果.some-class可見,那麼執行該功能。但似乎也沒有工作。在顯示內容之前仍然有警報。在API的加載階段,顯示一個

加載

。我正在考慮在沒有顯示時提醒... – jQuerybeast