Jquery get element, где курсор

Я создаю инструмент расщепления для моего сайта с javascript и jquery. Теперь я хочу показать для каждого элемента, что я хочу, чтобы splittest немного hovermenu, когда курсор проходит над элементом в моем предварительном поле. Есть ли возможность сделать что-то подобное? Я делаю что-то вроде этого

$('body').hover(function(event){
    console.log(event.target.nodeName);
    // to see if it showing up the element   
});

но он запускается только один раз. Поскольку я не хочу использовать клик, так как я хочу также показать меню на элементах привязки, я немного потерял

Ответ 1

Я считаю, что вы хотите использовать событие mousemove здесь вместо события hover.

$('body').mousemove(function(evt){
    console.log(evt.target);
});

Не забудьте использовать mousemove с особой осторожностью.

См. пример здесь.

Ответ 2

Вы можете использовать document.elementFromPoint для этого.

var element = document.elementFromPoint(x, y);

Для ex:

$('body').hover(function(event){
    var el = document.elementFromPoint(event.pageX, event.pageY);
});

Документы: https://developer.mozilla.org/en-US/docs/DOM/document.elementFromPoint

Ответ 3

Если вы используете клавиатуру, а не мышь: Не jQuery, просто JavaScript для тех, кто заинтересован:

getSelection().getRangeAt(0).commonAncestorContainer.parentNode

Ответ 4

Попробуйте следующее кодирование, это поможет вам...

    <body onMouseMove="javaScript:mouseEventHandler(event);">

    <script>
    function mouseEventHandler(mEvent) {
// Internet Explorer
                alert(mEvent.srcElement.nodeName); //Display Node Name
                alert(mEvent.srcElement.id); //Display Element ID
//FireFox
                alert(mEvent.target.nodeName);//Display Node Name
                alert(mEvent.target.id);//Display Element ID
            }
    </script>

Ответ 5

Есть 3 способа сделать это:

  • Что-то вроде этого:

    $('body').on('mousemove', function() {
     console.log($(':hover').last().attr('name'));
    });
    
  • Для цели отладки вы можете использовать jush-тип в консоли chrome $(':hover').last() Затем наведите курсор мыши на нужную вам кнопку и нажмите Enter, чтобы запустить эту консольную команду.

  • Если вы хотите использовать его постоянно, я рекомендую не использовать mousemove event. Используйте что-то вроде этого

    $('.one_of_your_trigger_element').on('mouseenter', function() {
     var hover_element = $(':hover').last();
     ...
    });