【发布时间】:2011-04-08 17:55:34
【问题描述】:
我很好奇当鼠标悬停在相关图像上加载页面时是否可以触发onmouseover 事件?我不想移动鼠标(因此使用mousemove 不会解决任何问题)。
我已经查看了这些较早的帖子:
jQuery trigger mouseover function when page loads with the mouse over the element
和
Detect if mouse is over an element when page loads with Javascript
第一个建议mousemove 需要移动鼠标。另一个答案建议使用 JQuery 和 .load() 和 .hover(),它们基本上利用了 Javascript 中的 mouseover 和 mouseout 事件,因此不会给问题带来任何新的东西(在 JQuery 中什么也做不了)不是用简单的 Javascript 来完成的吗?)
第二个帖子建议,除了mousemove,通过CSS display 属性使图像在加载后消失然后重新出现在同一位置的功能,因此根据海报,使mouseover 事件火。但是,当我这样做时,它不会触发,无论是在当前版本的 Firefox(3.6)还是测试人员使用的 3.0 版本(我不知道他是否真的让它工作但我相信我正确地理解了他)。第二个线程的最后一张海报表明它无法完成,因为页面需要知道光标的位置,如果你不移动鼠标,它就无法做到这一点,也许这就是真正的答案?
在 Explorer 8 中,这个问题以某种方式得到了修复,因为例如,当页面重新加载并且鼠标停留在同一图像上时,NEXT 按钮继续显示它的 onmouseover 图像而不是切换回其“关闭”按钮移动。但是,其他浏览器都没有此功能。
我意识到这个问题可以很容易地通过使用 Javascript 而不是重新加载整个页面来解决,从而使按钮上的onmouseover 图像保持在未更新的页面的一部分上,但我很好奇,因为我说没有这个是否可能。
此外,与focus 混合并在图像周围的锚标记中设置onfocus 属性也可以解决问题,但不能完全解决问题,因为现在的风险是在加载新的鼠标光标时重新定位页面,然后通过按下按钮上的锚标记保持焦点以使其使用其“打开”按钮将是一个坏主意。
那么,有没有什么方法可以检测页面加载时鼠标是否位于图像上而鼠标甚至没有移动一个像素,或者这是不可能的?
【问题讨论】:
标签: javascript mouseover onmouseover