Tôi đang tạo trang web nơi bạn di chuột qua hình ảnh và nó hiển thị phần tử (trong trường hợp này bằng cách mở rộng chiều cao từ 0 đến 154px).Kích hoạt chuột và mouseleave mỗi khi tôi di chuyển chuột bên trong phần tử đã cho
jQuery(document).ready(function(){
jQuery("#dropdown-menu-create .dropimage").mouseover(function(){
jQuery("#dropdown-menu-create .toggle").animate({height:"154px"},200);
});
jQuery("#dropdown-menu-create .dropimage").mouseout(function(){
jQuery("#dropdown-menu-create .toggle").animate({height:"0"},200);
});
});
Nội dung mở rộng khi chuột đi vào và sụp đổ khi những chiếc lá chuột, nhưng mỗi khi chuột được chuyển trong các yếu tố nội dung mở rộng và sụp đổ liên tục cho đến khi chuột lá nguyên tố này.
Tôi chưa từng gặp vấn đề này trước đây và tôi đã sử dụng các chức năng này trong quá khứ, vì vậy tôi đang thua lỗ về những gì đang diễn ra. Bất kỳ ý tưởng?
Edit:
jQuery(document).ready(function(){
jQuery("#dropdown-menu-create .dropimage").mouseenter(function(){
jQuery("#dropdown-menu-create .toggle").stop(true,true).animate({height:"154px"},200);
});
jQuery("#dropdown-menu-create .dropimage").mouseleave(function(){
jQuery("#dropdown-menu-create .toggle").stop(true,true).animate({height:"0"},200);
});
});
Tôi bây giờ sử dụng mã ở trên và vẫn nhận được các vấn đề chính xác như vậy. Tôi đã thử tất cả các biến thể của hàm .stop (false, false) (false, true) (true, false) (true, true). Vấn đề xảy ra khác nhau với mỗi một, nhưng nó vẫn xảy ra.
ULTIMATE EDIT:
Vấn đề là nội dung mà con chuột đã đi qua được bao phủ lên bằng nội dung khác nhau khi hàm được gọi. Do đó, tại bất kỳ thời điểm nào, chuột cũng đồng thời nhập và rời hình ảnh. Giải quyết vấn đề bằng cách di chuyển cuộc gọi hàm đến một phần tử khác.
Điều này xảy ra vì sự kiện 'mouseout' và' mouseover' phát sinh lên cha mẹ, vì vậy khi bạn di chuột qua phần tử con '.dropimage', bong bóng sự kiện' mouseout' và 'mouseover' lên tới' .dropimage'. Sử dụng 'mouseleave' và' mouseenter' thay vào đó sẽ khắc phục được sự cố. Khi vấn đề đó được sửa, bạn sẽ thấy rằng bạn cần gọi '.stop (true, true)' trước '.animate() 'để dừng các hình động trước đó trong trường hợp bạn di chuột qua lại nhiều lần một cách nhanh chóng. –
Tôi đã cập nhật mã, nhưng vấn đề vẫn tồn tại. – bcloutier
có thể ràng buộc sự kiện của bạn với hình ảnh và phần tử? thay vì chỉ là hình ảnh? – Mouseroot