2012-04-23 82 views
1

我试图找到一种方法来获取当前悬停元素的元素ID以显示一个弹出框/工具提示。目前,我使用clientX/clientY来获取坐标,但我真的很希望弹出窗口集中在我正在盘旋的元素上。获取选定元素的ID

是否有某种获取此信息的方式,例如“谁称为show_tooltip”或类似以后获取元素的坐标。希望这是有道理的。

针对下面的评论,这是我目前使用的。

function show_tooltip(evt) { 
    var x = evt.clientX -50; 
    var y = evt.clientY -70; 

    tooltip.setAttributeNS(null, "transform", "translate(" + x + "," + y + ")"); 
    tooltip.setAttributeNS(null, "opacity", "0.7"); 
} 

问题在于鼠标指针用于坐标。虽然我可以使用getElementById()来获得一个元素,但我不知道哪个元素称为函数。

+0

你能向我们展示一个你需要的代码的例子吗? – kjy112 2012-04-23 14:44:38

回答

1

我不知道如果这是你在找什么:

<div onmouseover="show_tooltip(this)"/> 

,你会得到的是,在js函数触发事件的元素。

+0

比你!这实际上解决了这个问题。我正在使用''标签进行分组,但它也起作用。我添加了'this'作为show_tooltip的参数,然后在'getAttribute'函数中获取元素的x和y坐标。 – foo 2012-04-23 15:57:48

+0

我很高兴它有帮助 – raven1981 2012-04-24 07:34:05

0

也许你可以看看http://docs.jquery.com/Plugins/Tooltipdemo)。 Thoose种类的插件已经开发了很多次。这只是一个例子。

+0

虽然这解决了问题,但它并不回答问题。我如何获得有关鼠标指向哪个元素的信息? – foo 2012-04-23 15:04:17

+0

首先,为所有可能被徘徊的元素添加一个类,例如'class =“hoverable”'。然后,使用jQuery,你可以做'$(“。hoverable”)。hover(function(){// ...})' – sp00m 2012-04-23 15:22:48

0

Event.target(在您的脚本evt.target中)包含事件的目标(通常是一个元素)。