【发布时间】:2012-06-21 14:58:44
【问题描述】:
我正在尝试将 php 页面加载到元素中,然后将滑块应用于加载的内容。
问题是函数执行后内容需要几秒钟才能加载并且滑块已经开始工作。
我试图以某种方式延迟滑块函数的执行,直到 php 嵌入函数完成。
这是我的代码:
$(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 函数完成加载页面然后继续代码?
Ajax页面代码:http://pastebin.com/XWa0jD77
easySlider1.7 代码:http://pastebin.com/CzK8BzfL
我想过从嵌入页面中调用滑块,但那行不通。
【问题讨论】:
-
settimeout 作为 document.ready 的参数不会做任何事情,您最好将 document.ready 删除。
-
AjaxPage sn-p 缺少一个非常重要的功能,我建议不要使用它,而只使用 jQuery 来满足您的 ajax 需求。 (它不支持 Deferred 对象,并且不允许您为其完成或失败分配回调)
-
是的,只需将您的 ajaxpage 函数替换为 jQuery 的 .load(),您可以在那里传递一个回调,以便仅在请求完成时运行。
标签: javascript jquery ajax function delay