【发布时间】:2011-12-21 23:18:56
【问题描述】:
我有一个绑定 mouseenter 事件的延迟函数:
$(window).load(function(e) {
var $container = $('.container');
$container.mouseenter(function(e) {
//do something
});
...
});
问题是当加载事件触发时鼠标可能已经在元素上方,因此在 mouseenter 事件被绑定之前。
我可以通过在页面加载处理程序的末尾放置一些代码来解决这个问题,以一次性检查鼠标是否在元素内并手动触发 mouseenter 事件:
// check if the mouse is inside $container
if(mouse is inside $container)
$container.mouseenter();
如何检查鼠标是否在加载事件中的元素上方?
我尝试了$container.is(':hover'),但它不起作用。
【问题讨论】:
-
你尝试过 mouseenter 和 mouseleave 事件吗?
-
$container.is(':hover')- 这在什么方面不起作用?我担心它不是特别交叉兼容(例如,它在 IE7 中不起作用,因为它依赖于 qSA 行为),但它似乎可以满足您对我的要求... -
@lonesomeday:查看jsfiddle.net/UVJgF/1 并将鼠标放在黑框上并按 ctr+enter。它不会在 FF8 上触发
标签: jquery