Điều này cũng sẽ làm việc.
$('#first').show(800);
setTimeout("$('#second').show(800)", 800);
setTimeout("$('#third').show(800)", 1600);
setTimeout("$('#forth').show(800)", 2400);
Tôi biết nó không hoàn toàn tuần tự, nhưng tôi thấy nó dễ đọc và cho phép bạn đặt hoạt ảnh linh hoạt hơn.
Lưu ý: Bạn phải trích dẫn mã bạn muốn thực hiện. Tôi đã không sử dụng bất kỳ dấu ngoặc kép trong mã trước đó, nhưng nếu bạn đã làm bạn sẽ có thể thoát khỏi chúng như sau.
$('#first').animate({"width":"100px"}, 500);
setTimeout("$('#second').animate({\"width\":\"100px\"}, 500)", 800);
setTimeout("$('#third').animate({\"width\":\"100px\"}, 500)", 1600);
setTimeout("$('#forth').animate({\"width\":\"100px\"}, 500)", 2400);
Bạn thường có thể tránh điều này bằng cách xen kẽ các trích dẫn bạn sử dụng, nhưng mặc dù nó đáng được đề cập đến.
UPDATE: Đây là một lựa chọn khác, và nó cũng đáng để thử qua jquery hứa hẹn here
$('#first').show(800);
$('#second').delay(800).show(800);
$('#third').delay(1600).show(800);
$('#forth').delay(2400).show(800);
Tôi không thực sự cần hàng đợi này, nó sẽ chỉ làm cho tổ chức mã 1000x tốt hơn. Tôi không hiểu tại sao không có trình bao bọc cho bất kỳ hàm nào trong một $ như (func) .joinUniversalQueue(); Wow .... đó là chính xác những gì tôi muốn và nó sẽ được điên dễ dàng để viết như một phương pháp/plugin. Tôi sẽ làm điều đó. – thirsty93
Suy nghĩ thứ hai, $ .joinUniversalQueue (func); sẽ dễ dàng hơn nhiều – thirsty93