Tôi dường như đang quan sát ít nhất một trường hợp trong đó chức năng gọi lại được chuyển đến một hàm hiệu ứng jQuery sẽ thực thi liên tục nếu có lỗi trong khi thực thi.Cuộc gọi lại của jQuery dường như lặp lại do lỗi?
Ví dụ, xem this JS Fiddle, có đoạn mã sau:
$('#awesome').fadeOut(400,function() {
log('fading out...');
dieInAFire();
});
log
gắn thêm bất cứ điều gì được truyền cho nó vào một div ... nhưng dieInAFire
không tồn tại. Thay vì chỉ dừng thực hiện, tuy nhiên, hàm ẩn danh dường như đang được gọi đi lặp đi lặp lại, được chứng minh bằng số lần xuất hiện ngày càng tăng của 'fading out ...' trong div nhật ký.
Đây có phải là hành vi mong đợi không? Nếu vậy, tại sao?
khám phá tuyệt vời ... :-) Đối với tôi nó không mong đợi gì cả. – HBublitz
Dường như một lỗi jQuery. – Emil
Rất lạ, có vẻ như nó có liên quan đến hoạt ảnh. Gọi lại AJAX không có vấn đề này, và gọi lại này là tốt quá nếu không có hình ảnh động. IE nếu phần tử đã có kiểu 'display: none;' gọi lại được gọi chính xác một lần. Cùng một vấn đề xảy ra với fadeIn() quá – Paulpro