Tôi nhận được lỗi từ jQuery 1.10.2, phiên bản cuối cùng và tôi sẽ biết nếu có bất kỳ giải pháp nào khác (cho) vấn đề này.jQuery show() thất bại với hiệu ứng last(), after() và "blind"
Tập lệnh của tôi tạo nhiều khối DIV (các mục có tên) từ một mô hình (mô hình mặt hàng), thêm dòng sau mẫu cuối cùng và hiển thị nó với hiệu ứng "mù".
Đây là mã nhưng bạn cũng có thể kiểm tra trực tuyến tại số this link.
<div id="item_model" style="display: none;" class="item">MODEL</div>
<button class="addBtn">Add 5 items</button>
<script>
$(".addBtn").click(function() {
for(var i=0; i<5; i++) {
// Clone model
var p = $("#item_model").clone(true, true);
// Modify item
p.removeAttr("id");
p.text("ITEM n°"+(i+1));
// Add item to the DOM
$(".item").last().after(p);
// Show item
$(p).show("blind");
//$(p).show();
}
});
</script>
Vấn đề tương tự với: last và insertAfter().
Logic:
- mục đầu tiên cũng được hiển thị và ảnh hưởng của nó xảy ra (hay không, lỗi khác nhưng thời gian trôi qua?)
- Trong một hình ảnh động có hiệu lực, các phần tử được thuê ngoài ou thay thế.
- Các mục tiếp theo được chèn vào trong DOM (sự kiện nếu sau() nên chèn nó vào DOM), vì vậy không có trong trang.
Hành vi này là lỗi từ jQuery nhưng tôi phải khắc phục sự cố này.
Các giải pháp tôi biết:
- Không sử dụng bất kỳ hiệu lực.
- Sử dụng vùng chứa và chắp thêm().
- Sử dụng hiệu ứng chậm thay vì bị mù. (Cảm ơn A. Wolff)
- Thêm phần tử vào DOM và SAU, hiển thị tất cả. (Cảm ơn A. Wolff)
Nhờ tất cả những đóng góp của bạn.
Kỳ lạ, nếu tôi đặt mã của bạn trong JSFiddle nó hoạt động tốt: http://jsfiddle.net/TrueBlueAussie/n2UVp/ –
@TrueBlueAussie không nếu bạn có jQuery UI http://jsfiddle.net/arunpjohny/AN3ft/1/ –
@Arun P Johny: Được phát hiện. Vì vậy, vấn đề là với sự bao gồm của JQueryUI. Ít nhất là hẹp nó xuống :) –