我有这个标记:
<span class="click">click</span>
<div><span>first child</span>, <span>second child</span>, <span>third child</span></div>
点击“.click”(我们称其为“target”)后,我想要:
1. 将“done” html 添加到下一个 div 的第一个子项中,如下所示:
$('.click').click(function (e) {
$(this).next('div').children('span').first().html(function () {
return $(this).html() + ' done';
});
});
});
2.只有在上一个函数完成后,将“done”html添加到目标的next div的第三个孩子;
3. 只有在前一个功能完成后,alert ("third child done. coming to second...")
;
4.只有在上一个函数完成后,将“将是最后一个处理的元素”html添加到目标的next div的第二个孩子;
5. 最后,只有在前一个功能完成后,alert ('the job is done')
;
6.由于这些功能可能需要很长时间才能完成,甚至可能涉及多个setTimeouts,我必须禁用所有与“.click”相关的事件,直到整个逻辑完成(在这种特殊情况下,这意味着它们将在之后启用alert ('the job is done')
)。
也许使用 $.Deferreds?或者创建某种回调?