我似乎经常编写类似于这样的模式的jQuery代码: 淡出==做一些幕后故事==淡入 如下图所示: /// reference path="jquery-1.4.2.js" //// reference path="jquery-1.4.2-vsdoc.js" //// reference path="jquery.validate-v
淡出==>做一些幕后故事==>淡入
如下图所示:
/// <reference path="jquery-1.4.2.js" />
/// <reference path="jquery-1.4.2-vsdoc.js" />
/// <reference path="jquery.validate-vsdoc.js" />
var fade = "slow";
$(document).ready(function () {
// Some event occurs
$("#Trigger").change(function () {
var id = $(this).find(":selected").val();
// Fade out target while I do something
$("#Target").fadeOut(fade, function () {
if (id != "") {
// Do Something
$("#Target").load(
"/Site/Controller/Action/"+id, null,
function () {
// Fade in Target
$("#Target").fadeIn(fade);
});
}
});
});
});
这工作正常,但回调层次结构变得非常深,我只是想知道是否有更简单的方法来做这个或更好的技术,不会导致这么多级别的回调
使用 jQuery’s.queue
$("#Target")
.fadeOut()
.queue(function() {
if (id != "")
// Do Something
$(this).load(
"/Site/Controller/Action/"+id, null,
$(this).dequeue
);
else
$(this).dequeue();
})
.fadeIn()
