Có thể. Bạn không thể lấy mouseenter cho một phần tử bên dưới phần tử khác, nhưng nếu bạn biết kích thước và vị trí của phần tử, bạn có thể nghe sự kiện mousemove và nhận khi chuột vào một số vùng cụ thể.
Tôi tạo ra hai divs, như của bạn:
<div id="aboveDiv" style="position:absolute;top:30px;left:30px;width:100px;height:100px;background-color:red;z-index:2;"></div>
<div id="belowDiv" style="position:absolute;top:80px;left:80px;width:100px;height:100px;background-color:green;z-index:1;"></div>
Và tôi muốn biết khi chuột đi vào khu vực occuped bởi div đó là dưới đây, để làm điều đó, tôi đã viết kịch bản này:
$(function(){
var divOffset = {
top: $("#belowDiv").position().top,
left: $("#belowDiv").position().left,
right: $("#belowDiv").position().left + $("#belowDiv").width(),
bottom: $("#belowDiv").position().top + $("#belowDiv").height(),
isOver: false
}
$(window).mousemove(function (event){
if (event.pageX >= divOffset.left && event.pageX <= divOffset.right && event.pageY >= divOffset.top && event.pageY <= divOffset.bottom){
if (!divOffset.isOver){
divOffset.isOver = true;
/* handler the event */
alert("gotcha");
}
}else{
if (divOffset.isOver){
divOffset.isOver = false;
}
}
});
});
Nó không đơn giản như nghe cho mousenter | mouseover, nhưng hoạt động tốt.
Dưới đây là một liên kết đến fiddle
Tôi đoán, và điều này là từ việc sử dụng các dẫn xuất ECMAScript khác là không, bạn không thể. – cwallenpoole
Nhưng tôi chưa thực sự làm điều này trong JS. – cwallenpoole
@Christopher - bạn thích cách tiếp cận của tôi như thế nào? – Fosco