JavaScript的setTimeout和setInterval方法可以讓我們在一定時間后執(zhí)行代碼。然而,在處理這些任務(wù)時,可能會出現(xiàn)一些問題。比如說,我們需要等待異步操作完成后才能繼續(xù)執(zhí)行我們的代碼,或者我們需要在一個特定的時間段后再執(zhí)行某個命令。
為此,jQuery提供了一些方法來幫助我們處理這些任務(wù)。其中之一就是delay()方法。這個方法使我們可以延遲執(zhí)行代碼一段時間,而不用寫復(fù)雜的setTimeout代碼。
// 使用delay()方法 $('p').delay(3000).fadeOut(400);
在上面的例子中,我們選擇所有的段落元素,并在3秒之后讓它們淡出。我們可以看到,這個代碼比使用setTimeout要簡單得多。
另一個方法是promise()。這個方法可以讓我們處理異步代碼,使我們可以在異步請求完成時執(zhí)行其他代碼。代碼如下:
// 使用promise()方法 $.ajax('someurl').then(function() { $('p').fadeOut(400); });
在這個例子中,我們發(fā)送一個異步請求,并在請求完成后讓所有段落元素淡出。promise()方法可以讓我們處理異步代碼更加方便。
最后,我們還有一個queue()方法。這個方法可以讓我們一次性加入多個任務(wù),讓它們按照順序執(zhí)行。我們可以使用這個方法來模擬一些復(fù)雜的功能。代碼如下:
// 使用queue()方法 $('p').delay(3000).fadeOut(400).queue(function() { $(this).text('任務(wù)已完成').dequeue(); }).fadeIn(400);
在此例中,我們使用queue()方法加入三個任務(wù),分別為延遲3秒后淡出、在頁面中顯示“任務(wù)已完成”并繼續(xù)執(zhí)行、淡入。這個例子可能有點復(fù)雜,但它可以幫助我們理解queue()方法的使用方法。
下一篇css形狀漸變動畫