我有一個等待功能的需要,開始與以下內容:`返回this`,用正確的(保留)chainability
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
- 元素...
除此之外,是否有可能讓「鏈」只是走的更遠,如果超時爲0?因此,如果我們有以下情況,只有在定時器結束時纔會添加該類:
$('#second').wait().addClass('foo');
使用'this'的'setTimeout' ...'this'是'window' – charlietfl
邑,謝謝,@SLaks有反駁這個問題了。 ..對我最後一句話中的問題有任何想法? – yckart
仍然不是鏈接問題...您仍然獲得鏈接性,元素本身從您的插件返回。 'setTimeout'中的上下文是不同的問題。添加成功的動畫回調類 – charlietfl