phía khác của sự chậm trễ(): có vẻ như để vô hiệu hóa khả năng để ẩn (hoặc fadeOut, vv) các đối tượng bị trì hoãn, cho đến khi sự chậm trễ là hơn.
Ví dụ, tôi thiết lập đoạn mã sau (có lẽ một nhà phát triển stackoverflow sẽ nhận ra những cái tên css ....) để ẩn một 'div':
$j(document).ready(function(){
var $messageDiv = $j("<div>").addClass('fading_message')
.text("my alert message here").hide();
var $closeSpan = $j("<span>").addClass('notify_close').text("x");
$closeSpan.click(function() {$j(this).parent().slideUp(400);});
$messageDiv.append($closeSpan);
$j('.content_wrapper_div').prepend($messageDiv);
$messageDiv.fadeTo(500, .9).delay(5000).fadeTo(800,0);
});
Nhấp vào "x" đó là trong span (đó là trong 'div') đã kích hoạt chức năng click (tôi đã thử nghiệm với một cảnh báo trong đó), nhưng div không trượt theo chỉ dẫn. Tuy nhiên, nếu tôi thay thế dòng cuối cùng bằng cách này:
$messageDiv.fadeTo(500, .9);
.. sau đó tôi đã làm việc - khi tôi nhấp vào "x", xung quanh div slideUp và và đi. Có vẻ như nền chạy của hàm "delay()" trên $ messageDiv "đã khóa" đối tượng đó, do đó một cơ chế riêng biệt cố gắng đóng nó không thể làm như vậy cho đến khi trì hoãn được thực hiện.
... Hoặc khi bạn muốn có thể hủy sự chậm trễ. – sdleihssirhc
Chỉ cần ghi nhớ rằng bạn không thể hủy bỏ một sự chậm trễ, nếu vì một lý do nào đó bạn muốn nâng cao hình ảnh động của bạn, nhưng bạn có thể với setTimeout. – blackhawk