2011-10-27 37 views
13

Tôi muốn theo dõi và hiển thị chú giải công cụ khi con chuột ở gần phần tử đầu bảng. Nó hoạt động với sự kiện mouseenter, nhưng tôi muốn hiển thị chú giải công cụ trước mouseenter khi nó ở gần. Ngoài ra, tôi muốn xóa chú giải công cụ sau mouseout khoảng cách từ đầu bảng.Chức năng cho chuột gần một phần tử trong jQuery

Đây là mã của tôi.

$('thead').mouseenter(showtooltip); 
$('thead').mouseout(removetooltip); 

Tôi có thể làm điều này với jQuery bằng cách nào?

+7

Cho lề div của bạn trên tất cả các bên, margins and padding được tính như là một phần của đối tượng vì vậy nếu bạn di chuột qua bên lề sau đó bạn sẽ thấy những tooltip trước khi bạn 'thực sự' nhập div. – Ryan

+1

Hoặc, tạo một div trong suốt lớn hơn đặt trên div mục tiêu của bạn và đặt trình xử lý sự kiện trên div ẩn này. – nrabinowitz

+0

cảm ơn bạn ryanOptini. Tôi muốn làm điều đó cho đầu bảng. không cho div –

Trả lời

26

Tác phẩm này. Tham số đầu tiên có thể là bất kỳ đối tượng jQuery nào. Tham số thứ hai là gần với đối tượng, trong trường hợp này là 20px.

Demo: http://jsfiddle.net/ThinkingStiff/Lpg8x/

Script:

$('body').mousemove(function(event) { 

    if(isNear($('thead'), 20, event)) { 
     //show your tooltip here 
    } else { 
     //hide it here 
    }; 

});   

function isNear(element, distance, event) { 

    var left = element.offset().left - distance, 
     top = element.offset().top - distance, 
     right = left + element.width() + 2*distance, 
     bottom = top + element.height() + 2*distance, 
     x = event.pageX, 
     y = event.pageY; 

    return (x > left && x < right && y > top && y < bottom); 

}; 
+1

Giải pháp này dường như khá nặng CPU – medonja

Các vấn đề liên quan