我試圖加載一個php頁面到一個元素,然後將滑塊應用於加載的內容。
問題是在執行函數並且滑塊已經開始工作後,內容需要幾秒鐘才能加載。
我試圖以某種方式延遲滑塊功能的執行,直到php嵌入功能完成。jQuery/Javascript的 - 延遲一個函數的執行,直到另一個完成
這裏是我的代碼:
$(document).ready(function() {
ajaxpage("products.php?type=featured&order=salesNumber", "featuredArea");
});
$(document).ready(setTimeout(function() {
$(".productsArea").easySliderProducts({
nextText: "Next",
prevText: "Previous"
});
document.getElementById("outputHere").innerHTML = $(".page ul#featuredArea li").length;
$(".page").easySlider({
s: $(".page ul#featuredArea li").length,
auto: true,
continuous: false,
nextId: "featNextArrow",
nextText: "",
prevId: "featPrevArrow",
prevText: "",
pause: 7500
});
}, 1000));
我爲了使用setTimeout函數分離兩者。
它適用於我,但結果可能會有所不同,其他人。
我想知道是否有可能等到ajaxpage函數完成加載頁面然後繼續執行代碼?
AjaxPage代碼:http://pastebin.com/XWa0jD77
easySlider1.7代碼:http://pastebin.com/CzK8BzfL
我想過從嵌入頁面中調用滑塊,雖然這是行不通的。
settimeout作爲document.ready的參數不會阻止antyhing,您可能會刪除document.ready。 –
AjaxPage片斷缺少一個非常重要的功能塊,我建議不要使用它,只是使用jQuery來滿足您的ajax需求。 (它不支持Deferred對象,它不允許你指定一個回調來完成或失敗) –
是的,只需用jQuery的.load()替換你的ajaxpage函數,就可以傳回一個回調來運行只有當請求完成時。 – Mahn