私は待機機能が必要でした。次のことから始めました。
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
、実際の-elementではなく、-objectを#second
調べます。
それとは別に、タイムアウトが0の場合、「チェーン」をさらに進めることは可能ですか?したがって、次のシナリオがある場合、タイマーが終了した場合にのみクラスが追加されます。
$('#second').wait().addClass('foo');