Как проверить, ли курсор по элементу? [дубликат]

18
задан Hidden Hobbes 20 April 2015 в 10:58
поделиться

2 ответа

Я не совсем понимаю, почему вы так сильно хотите избежать hover: рассмотрим следующий сценарий

$(function(){

    $('*').hover(function(){
        $(this).data('hover',1); //store in that element that the mouse is over it
    },
    function(){
        $(this).data('hover',0); //store in that element that the mouse is no longer over it
    });


    window.isHovering = function (selector) {
        return $(selector).data('hover')?true:false; //check element for hover property
    }
});

В основном идея заключается в том, что вы используете hover для установки флага на элементе, что мышь находится над ним/не находится больше над ним. А затем вы пишете функцию, которая проверяет наличие этого флага.

10
ответ дан 30 November 2019 в 08:37
поделиться

Самым простым способом, вероятно, будет просто отслеживать, над каким элементом постоянно находится мышь. Попробуйте что-то вроде:

<div id="1" style="border:solid 1px red; width:50px; height:50px;"></div>
<div id="2" style="border:solid 1px blue; width:50px; height:50px;"></div>
<div id="3" style="border:solid 1px green; width:50px; height:50px;"></div>

<input type="hidden" id="mouseTracker" />

​$(document).ready(function() {
    $('*').hover(function() { 
        $('#mouseTracker').val(this.id);
    });
});

и тогда ваша функция будет просто

function mouseIsOverElement(elemId) {
    return elemId === $('#mouseTracker').val();
}
3
ответ дан 30 November 2019 в 08:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: