我想把最里面的元素放在某个光标位置,即:
<div>
<div>
<span>Text</span>
</div>
</div>
如果我将鼠标光标指向文本,我想要检索span
标记,而不是最外面的div
,这是JavaScript elementFromPoint(x,y)
的默认值。< / p>
(如果有任何帮助:我想在JQuery keydown事件处理程序中检索元素)
答案 0 :(得分:1)
keydown
事件未提供.pageX
和.pageY
等属性,因此您无法在document.elementFromPoint()
上应用这些值。
您需要在window
或document.body
上设置一个事件监听器,并将event data
信息提供给更公开的上下文,以便您可以在keydown
处理程序中访问该数据。
答案 1 :(得分:1)
你可以这样做:
$('div').hover(function(element){
element.find('span').dosomestuff();
});
我希望它有所帮助。
答案 2 :(得分:0)
演示:http://jsfiddle.net/mspocq9h/1/
var hoverEleme = null;
$('*').hover(function(){
hoverEleme = $(this);
});
$(window).on('keydown', function( e ) {
// Get hoverEleme here
$('span').css('color', 'black');
$(hoverEleme).closest('span').css('color','red');
});
使用jQuery&#39; .closest()
调用遍历元素的祖先,找到与选择器匹配的第一个元素,在这种情况下是最接近的span
。
此处没有按下按键的过滤器,它只是将颜色设置为红色,这样您就可以看到它找到了您正在寻找的那个。