Tôi có một div có id là "button". Tôi đang cố gắng thay đổi nền của nó để trở thành màu xanh khi tôi di chuột (không sử dụng bộ chọn di chuột CSS).Javascript addEventListener - sử dụng để tạo hiệu ứng di chuột?
var item = document.getElementById("button");
item.addEventListener("mouseover", func, false);
function func()
{
var item = document.getElementById("button");
item.setAttribute("style", "background-color:blue;")
}
Điều này, tuy nhiên, chỉ đặt màu thành mục màu xanh khi tôi di chuột nhưng không đặt lại thành màu trắng sau khi di chuyển chuột. Làm thế nào tôi có thể sửa lỗi này? (btw, mouseenter và mouseleave không làm việc với điều này dường như).
Ahh ... tuyệt vời! Tôi có một hình ảnh bên trong div của tôi và nó coi đó là "ra", bất kỳ cách nào để che giấu mà nó vẫn nghĩ rằng nó là trong hộp? – antonpug
Có, các sự kiện di chuột qua và di chuột bắt tất cả các sự kiện từ trẻ em (và chúng bong bóng lên). Trong các hàm của bạn, bạn sẽ phải so sánh thuộc tính relatedTarget (W3C) hoặc toTarget/fromTarget (IE) trên tham số sự kiện. Hãy xem liên kết này để biết thêm thông tin: http://www.quirksmode.org/js/events_mouse.html#relatedtarget – AndrewR
Có rất nhiều công việc để chỉ chụp vùng chứa chính và không xử lý bất kỳ thứ gì từ các phần tử con. Trừ khi bạn có bất kỳ lý do cụ thể nào không, bạn có thể đơn giản hóa mã của bạn bằng cách sử dụng hàm 'hover() 'của jQuery. – AndrewR