[英]jquery get element where the cursor is
我正在使用javascript和jquery为我的网站构建一个splittesting工具。 现在我想显示每个元素,当光标经过我的预览框中的元素时,我想分割一些小的hovermenu。 有没有可能做这样的事情? 我喜欢这样的事情
$('body').hover(function(event){
console.log(event.target.nodeName);
// to see if it's showing up the element
});
但它只触发一次。 因为我不想使用点击,因为我也想在锚元素上显示菜单我有点迷失
我相信你想在这里使用mousemove
事件而不是hover
事件。
$('body').mousemove(function(evt){
console.log(evt.target);
});
请记住谨慎使用mousemove
。
您可以使用document.elementFromPoint
。
var element = document.elementFromPoint(x, y);
例如:
$('body').hover(function(event){
var el = document.elementFromPoint(event.pageX, event.pageY);
});
文档: https : //developer.mozilla.org/en-US/docs/DOM/document.elementFromPoint
如果您使用的是键盘而不是鼠标:不是jQuery,只对那些感兴趣的人使用简单的JavaScript:
getSelection().getRangeAt(0).commonAncestorContainer.parentNode
尝试下面的编码它会帮助你......
<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>
有3种方法可以做到:
像这样的东西:
$('body').on('mousemove', function() { console.log($(':hover').last().attr('name')); });
出于调试目的,您可以在chrome console $(':hover').last()
输入类型.last $(':hover').last()
hover鼠标悬停在所需的位置,然后按Enter键运行此控制台命令。
如果你想继续使用它,我建议不要使用mousemove事件。 使用类似的东西
$('.one_of_your_trigger_element').on('mouseenter', function() { var hover_element = $(':hover').last(); ... });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.