0
在我的測試網站上,我嘗試在用戶切換視頻之前使用AJAX加載一些關於視頻的文本,然後在ajax成功返回後輸入文本。如何在兩個單獨的函數可用後立即運行腳本?
我需要檢查AJAX是否已成功返回並且JavaScript函數已可用。我怎樣才能檢查這個?
爲AJAX加載並儘快javascript函數我可以分別就立即執行功能已經變得可用,但我不知道他們會來的次序。
在我的測試網站上,我嘗試在用戶切換視頻之前使用AJAX加載一些關於視頻的文本,然後在ajax成功返回後輸入文本。如何在兩個單獨的函數可用後立即運行腳本?
我需要檢查AJAX是否已成功返回並且JavaScript函數已可用。我怎樣才能檢查這個?
爲AJAX加載並儘快javascript函數我可以分別就立即執行功能已經變得可用,但我不知道他們會來的次序。
你就可以用活動的東西,回調。我仍然不確定你的意思是「功能已經變得可用」,但是這裏有些東西不應該讓你開始。
// Check if all conditions are complete.
function completionChecker(limit, callback) {
// Private count variable will outlast scope due to closure.
var count = 0;
// Return a callback for the event.
return function(event) {
if(++count == limit) {
// Call the callback supplied.
callback();
// Remove the event listener, we've reached the limit.
this.removeEventListener("finished", arguments.callee, false);
}
}
}
// Some function to perform when everything is complete.
function myFunc() { /* Do stuff */ }
// Create a custom event.
var myEvt = new CustomEvent("finished");
// Add a listener to the document. After 2 "finished" events, call myFunc.
document.addEventListener("finished", completionChecker(2, myFunc), false);
// Now in your ajax success callback, and wherever your other function
// has "become available", fire the "finished" event.
document.dispatchEvent(evt);
你是指JavaScript函數變得可用的意思是什麼?你將用什麼機制來檢測? – RonaldBarzell
*變爲可用* - 如果可能的話,您應該讓其他函數觸發某種事件/回調。 – McGarnagle
我正在使用slides.js,因此我不能使用回調函數,因爲我不知道哪個函數會先返回。 – user1082764