Bạn có thể sử dụng sự kiện mousemove. Điều đó sẽ kích hoạt bất cứ lúc nào người dùng di chuyển chuột; do đó, trường hợp duy nhất của trình kích hoạt không kích hoạt sẽ là nếu người dùng không di chuyển chuột, điều này hiếm khi xảy ra.
Vấn đề duy nhất với sự kiện này là sự kiện sẽ kích hoạt bất cứ khi nào chuột di chuyển qua hình ảnh của bạn, vì vậy bạn sẽ nhận được rất nhiều sự kiện trong khi trên thành phần. Những gì bạn có lẽ sẽ cần phải làm là thực hiện một số loại cờ trong phương pháp của bạn khi sự kiện cháy. Bạn bật cờ khi sự kiện đầu tiên kích hoạt và bạn tắt nó khi bạn rời khỏi thành phần.
Điều này ít hơn lý tưởng, nhưng tôi nghĩ điều này có thể sẽ đáp ứng kịch bản sự cố của bạn. Sau đây là một số mã giả nhanh trên những gì mà giải pháp có thể trông giống như, tôi nghĩ rằng nó sẽ làm việc.
<img src="blah.png" onmousemove="JavaScript:triggerOn(event)" onmouseout="JavaScript:triggerOff(event)"/>
...
<script type='text/javascript'>
var TriggerActive = false;
function triggerOn(e){
e = e||window.e;
if(!TriggerActive){
TriggerActive = true;
// Do something
} else {
// Trigger already fired, ignore this event.
}
}
function triggerOff(e){
e = e||window.e;
if(TriggerActive)
TriggerActive = false;
}
</script>
Bạn có thể tìm thấy một số thông tin sự kiện chuột tuyệt vời bao gồm ghi chú tương thích trình duyệt here.
Nguồn
2009-10-05 19:48:53
Giải pháp thay thế tốt. Trộn này với .addEventListener ("mouseenter", chức năng) có vẻ là một giải pháp tốt. – Paul