Trong thư viện tôi đang sử dụng, tôi có nhiệm vụ di chuyển một phần tử sang mặt trước của mái vòm khi nó được di chuột qua. (Tôi làm cho nó lớn hơn vì vậy tôi cần phải nhìn thấy nó, sau đó thu nhỏ lại khi chuột ra).Di chuyển phần tử hoạt động mất sự kiện di chuột trong trình khám phá internet
Thư viện tôi đang sử dụng có giải pháp gọn gàng, sử dụng appendChildren trên phần tử hoạt động để di chuyển nó đến phần cuối của phần tử gốc để tiến tới phần cuối của vòm và bật lên trên cùng.
Vấn đề là tôi tin rằng vì yếu tố bạn đang di chuyển là thứ bạn đang di chuột qua sự kiện di chuột bị mất. Con chuột của bạn vẫn còn trên nút nhưng sự kiện mouseout không được kích hoạt.
Tôi đã tước chức năng xuống để xác nhận sự cố. Nó hoạt động tốt trong firefox nhưng không có trong bất kỳ phiên bản nào của IE. Tôi đang sử dụng jquery ở đây cho tốc độ. Các giải pháp có thể nằm trong javascript cũ đơn giản .. đó là sở thích vì nó có thể cần phải quay lại luồng.
Tôi không thể sử dụng chỉ mục z ở đây vì các phần tử là vml, thư viện là Raphael và tôi đang sử dụng cuộc gọi toFront. Mẫu sử dụng ul/li để hiển thị vấn đề trong một ví dụ đơn giản
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="js/jquery.min.js" type="text/javascript"></script>
<style>
li
{
border:1px solid black;
}
</style>
</head>
<body>
<ul><li>Test 1</li></ul>
<ul><li>Test 2</li></ul>
<ul><li>Test 3</li></ul>
<ul><li>Test 4</li></ul>
<script>
$(function(){
$("li").mouseover(function(){
$(this).css("border-color","red");
this.parentNode.appendChild(this);
});
$("li").mouseout(function(){
$(this).css("border-color","black");
});
});
</script>
</body>
</html>
Edit: Đây là một liên kết đến một js dán bin để xem nó trong hành động. http://jsbin.com/obesa4
** Chỉnh sửa 2: ** Xem tất cả nhận xét về tất cả các câu trả lời trước khi đăng bài như nhiều thông tin khác trong đó.
tôi không thể hiểu được bài đăng của bạn. bạn muốn sự kiện 'mouseout' kích hoạt trong khi con chuột của bạn vẫn ở trên phần tử? câu hỏi thực sự của bạn là gì? – lincolnk
Và đối với this.parentNode.appendChild (this) ;, bạn đang cố gắng thêm lại phần tử LI hiện có? Tại sao không chỉ thêm một lớp CSS vào nó thay vì thêm/loại bỏ cùng một thành phần với CSS mới? Hoặc mã ban đầu của bạn có liên quan đến việc thêm một phần tử hoàn toàn mới từ một nơi nào khác bên trong UL để bắt chước hiệu ứng kích thước "mở rộng" của bạn mà bạn đã đề cập trong phần đầu? – Gary
Linkol Tôi đang cố gắng để có được mã mẫu để làm việc trong tức là giống như nó trong firefox. Sự kiện mouseout không kích hoạt. Tôi đang sử dụng các phần tử li làm ví dụ. Như tôi đã nói trong bài viết của mình, các phần tử thực sự là các phần tử VML. Vì vậy, những thứ như z-index hoặc thêm các lớp học sẽ không hoạt động, trừ khi mọi người có thể chứng minh khác nhau. – johnwards