因此,由于缺乏睡眠或纯粹的误解,我无法使用一段jQuery代码。
所以请将你唯一的希望归于社区:P
我有一个jQuery函数,它在onClick =“”属性
元素上执行<div id="next" onClick="choice('next', '<? echo $page; ?>')"></div>
基本上我想要实现的是:让一个元素淡出然后通过AJAX调用PHP脚本将相关数据和该数据抓取到前面讨论的先前隐藏的元素,然后将所述元素淡化为焦点。 / p>
我遇到的问题是无论我做什么(使用.queue
或setTimeout
)或只是在jQuery中使用标准的'fx'队列,AJAX数据总是加载ASAP和任何尝试延迟不起作用。
以下是代码,请提前感谢您的帮助。
function choice(value, page) {
var timer;
$.get("http://<? echo ROOT; ?>includes/forms.php", { choice: value, page: page }, function(data) {
clearTimeout(timer);
$("#slideOut-inner").fadeOut(2000).empty();
timer = setTimeout(show, 2200);
function show() {
$("#slideOut-inner").append(data).fadeIn(2000);
}
});
}
答案 0 :(得分:1)
设置$ .get的成功回调的延迟在之外,否则只有在客户端收到服务器的响应后才会发生:
$("#slideOut-inner").fadeOut(2000, function() {
$(this).empty();
$.get("http://<? echo ROOT; ?>includes/forms.php", {
choice: value,
page: page
}, function(data) {
$("#slideOut-inner").append(data).fadeIn(2000);
});
});
答案 1 :(得分:1)
尝试将append()
放入fadeOut()
:
$.get("http://<? echo ROOT; ?>includes/forms.php", { choice: value, page: page }, function(data) {
$("#slideOut-inner").fadeOut(2000, function() {
$(this).empty()
.append(data).fadeIn(2000);
}).empty();
});