jQuery在鼠标不在元素onload上时隐藏
如果我有一个菜单,出于可访问性的原因,它在页面加载时是可见的(因此,如果欧盟没有启用JS,那么他们仍然可以四处导航),但是如果他们确实启用了JS,我想隐藏它,那么就很容易了,只需隐藏它。但是,如果在事件触发时鼠标位于元素上方,我希望它保持打开状态 问题是(无论如何,对于FF,我认为这也适用于其他浏览器),如果鼠标不移动,鼠标不会触发任何事件来确定它当前在菜单上,如果这样做有意义的话jQuery在鼠标不在元素onload上时隐藏,jquery,Jquery,如果我有一个菜单,出于可访问性的原因,它在页面加载时是可见的(因此,如果欧盟没有启用JS,那么他们仍然可以四处导航),但是如果他们确实启用了JS,我想隐藏它,那么就很容易了,只需隐藏它。但是,如果在事件触发时鼠标位于元素上方,我希望它保持打开状态 问题是(无论如何,对于FF,我认为这也适用于其他浏览器),如果鼠标不移动,鼠标不会触发任何事件来确定它当前在菜单上,如果这样做有意义的话 $(function(){ $("#myMenu").animate({"width": 'toggle'},
$(function(){
$("#myMenu").animate({"width": 'toggle'}, 350).hide();
});
我也尝试将其直接放入窗口加载事件中,但是这不起作用,因为事件参数对象显示window
为当前目标,而不是鼠标当前所在的元素,而且这也不好,因为窗口加载等待图像等的所有问题
$(window).load(function(e){
console.log(e);
$("#myMenu").animate({"width": 'toggle'}, 350).hide();
});
为什么不无限期地显示它,直到鼠标移动,然后检查鼠标是否在上面,如果没有,则隐藏 将mousemove事件附加到窗口,然后检查它是否位于该DOM元素之上:
$(window).mousemove(function(event) {
var mouse_x = event.pageX;
var mouse_y = event.pageY;
// then get position and height/width of menu's DOM element, hiding if the mouse isn't in it
});
这是个不错的主意,不过我会把它转换成
$(window)。一个(“mousemove”,function…
,而不是像那样的纯绑定,否则它会一直启动,这不是最好的,特别是当我以后不需要它的时候。(或者可以在function中解除绑定事件,无论哪种方式)