检查鼠标悬停是否被触发?

时间:2009-10-07 22:54:50

标签: javascript

在Javascript中的

:有没有办法检查某个元素的mouseover事件是否已被触发?

如果是,怎么样?

Ť

5 个答案:

答案 0 :(得分:2)

var mousedOver = [];

function addToMousedOverElements(obj) {
    mousedOver[mousedOver.length] = obj;
}

您可以创建一个回调函数,将moused over元素添加到列表中。

<a href="#" onmouseover"addToMousedOverElements(this);">mouseover me!</a>

或类似的东西。然后,这将允许您引用已被鼠标悬停的每个元素。在将其添加到列表之前,您可能还需要检查该元素是否已被鼠标悬停。

答案 1 :(得分:1)

假设您想要跟踪一堆元素上的鼠标悬停事件。因为,鼠标悬停事件在JS中冒泡,所以将onmouseover处理程序附加到作为这些元素的父节点的节点。 请考虑以下html:

`<div id="parent">
   <div id='div1'>Track mouseover on me</div>
   <div id='div2'> Track mouse over on me too.</div>
 </div>

因此,对于这样的HTML,您可以将处理程序附加到名为“父”的div,如

document.getElementById('parent').onmouseover = function(e){
e = e|| window.event;
if(e.target.id=='div1')
  //handle mouseover for first div;
};
`

等等。像这样,你可以为一堆元素设置一个通用的函数处理程序。

答案 2 :(得分:0)

例如对于div:

<div onmousemove="alert('doSomething')">waiting for mouse over...</div>

您可以使用任何javascript函数替换alert

此处有更多信息:Javascript - Mouse Events

答案 3 :(得分:0)

这就是工作:

   <head>
    <script language="JavaScript">
        function myFunction(){
            alert('Mouse over!!!') 
        } 
    </script>
    </head>
    <body>
        <div id="myDiv" onmouseover="myFunction()">
            Mouse over here...
        </div>
    </body>

答案 4 :(得分:0)

处理原始Javascript可能很麻烦,尤其是跨浏览器。你最好使用像jQuery这样的库来处理这个问题:    jQuery onMouseOver

虽然这些库确实会增加您网页的大小,但您仍然可以通过使用CDN获得良好的性能,例如:    Google's AJAX CDN    Microsoft's AJAX CDN