我有一个带有以下标记的 HTML 文档:
<div id="outside">
<div id="warning">Some warning here</div>
<div id="inside"></div>
</div>
我想做的是这个列表,按照列出的顺序,在前一个完成之前不继续下一个项目:
- 隐藏#outside 元素。
- 将#inside 的内容设置为“foo”。
- 显示#outside 元素。
这样的事情可以用 jQuery 完成:
$('#outside').hide(function(){
$('#inside').html('bar');
$('#outside').show();
});
随着更多事件包含回调,此代码变得更加混乱,并且变得不易维护。
相反,我想做这样的事情:
$.sequence(
function(){ $('#outside').hide(); },
function(){ $('#inside').html('foo'); },
function(){ $('#outside').show(); }
);
此代码清楚地显示了该过程的每个步骤,并且允许轻松插入/删除任何步骤,因为它不需要嵌套函数回调。
请注意,此处显示的 HTML 与我实际使用的内容相比已大大简化,并且我希望对这些元素应用更长的操作链。
通常,仅通过对同一 jQuery 元素的顺序方法调用就可以做到这一点,但是使用的不同元素不允许队列按顺序执行。我正在寻找一种方法来对调用进行排序,这种调用在读取时看起来很干净并且可以与任何元素一起使用。