我需要一个等待功能,从以下开始:
var delay = (function() {
return function(callback, ms) {
setTimeout(callback, ms || 1000);
};
})();
delay(function() {
$('#foo').animate({
height: 180
}, 1000);
});
然后移植到jQuery:
jQuery.fn.wait = function(callback, seconds) {
return this.each(function() {
return setTimeout(callback, seconds || 1000);
});
};
$('#second').wait(function() {
$('#second').addClass('foo'); // works well
});
最终陷入混乱:
$('#second').wait(function() {
$(this).addClass('foo'); // `this` will not work here
});
...我上次实例化的问题在哪里,或者我该如何解决?this
在这里看的是window
-object,而不是实际的#second
-element...
除此之外,如果超时为0,是否可以让“链”走得更远?因此,如果我们有以下场景,则只有在计时器结束时才会添加该类:
$('#second').wait().addClass('foo');