我知道这是基本的,但是在查看了多个资源(像这样)之后,我被卡住了。如何嵌套functionTwo
以使其仅在functionOne
完成后运行?这是我的尝试。(实际上我想在functionTwo中做一些更复杂的事情,我只是为了简化这个测试用例。)
$(function () {
functionOne();
});
function functionOne() {
$(".foo:first").attr('id','bar');
functionTwo();
}
function functionTwo() {
console.log($('.foo:first').attr('id')); // log the new id: 'bar'
}
这行得通,但它们是独立运行的吗?当我在第一个函数上设置超时时,没有任何记录(除非这是一个单独的错误)。
然后我尝试了这个:
$(function () {
functionOne();
});
function functionOne() {
$(".foo:first").attr('id', 'bar', function () {
functionTwo();
});
}
function functionTwo() {
console.log($('.foo:first').attr('id'));
}
没有任何记录。如果回调不能作为参数.attr
然后:
$(function () {
$.when.functionOne().done(function () {
functionTwo();
});
});
function functionOne() {
$(".foo:first").attr('id', 'bar');
}
function functionTwo() {
console.log($('.foo:first').attr('id'));
}
没有任何记录。我不认为.when
并且.done
应该以这种方式使用。
那么我应该如何嵌套这些呢?