因此,由于睡眠不足或纯粹的误解,我在获取一段jQuery代码时遇到了问题。
所以请社区你的我唯一的希望:p
我有一个jQuery函数,它在元素onClick="属性上执行
<div id="next" onClick="choice('next', '<? echo $page; ?>')"></div>
基本上,我试图实现的是:让一个元素淡出,然后通过AJAX调用PHP脚本,将相关数据和该数据抓取到前面讨论的先前隐藏的元素中,然后将所述元素淡出到焦点中。
我遇到的问题是,无论我做什么(使用.queue
或setTimeout
),或者只是使用jQuery中的标准"fx"队列,AJAX数据总是尽快加载,任何延迟的尝试都不起作用。
下面是代码,提前感谢您的任何帮助。
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);
}
});
}
在$.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);
});
});
尝试将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();
});