问题标签 [mouseout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
15405 浏览

javascript - 鼠标离开浏览器窗口时的Javascript事件

我想在鼠标离开浏览器窗口时运行一些 Javascript 代码。我只需要支持 Safari (WebKit.)

我尝试在窗口上放置一个 mouseout 处理程序。当鼠标离开浏览器窗口时,该处理程序被可靠地调用。但是由于冒泡,当鼠标在文档中的元素之间移动时也会调用它。我不知道如何确定鼠标何时实际离开窗口以及何时仅在元素之间移动。

当鼠标离开窗口时,恰好会产生一个事件,并且目标元素看起来就是鼠标实际所在的元素。所以检查目标元素是窗口还是文档不起作用。并且将整个页面包装在一个不可见的包含 div 中也不起作用:如果 div 是不可见的,那么鼠标将永远不会在它上面,所以没有任何变化。

(如果我将处理程序放在 document 或 document.body 上,也会发生同样的事情,除了令人惊讶的是 document.body 在鼠标进入或离开窗口的空白部分(例如创建的空白垂直空间)时没有获得 mouseover/mouseout 事件通过绝对定位元素底部:0。对于该空间,文档和窗口将获得鼠标悬停/鼠标退出事件,目标为 <html>,但 document.body 不会。)

我的一些想法:

  • 在每个 mouseout 事件中,获取鼠标的实际位置并查看它是否实际上位于窗口上方。但我不知道这是否真的可行,而且听起来要消除所有的竞争条件会很棘手。
  • 还注册一个鼠标悬停处理程序并检测鼠标悬停未进行(或紧随其后)鼠标悬停的情况。但这需要一个计时器。

我们使用prototype.js 非常理想,我想用原型的Event.observe 来表达解决方案,但我可以弄清楚那部分。

感谢您的任何建议!

0 投票
2 回答
2337 浏览

jquery - Jquery mouseover/mouseout 触发不一致

我有两个可排序列表,一个是嵌套的,鼠标悬停在嵌套可排序列表的 li 元素上。我的问题是当用户在子元素上的列表中快速移动鼠标时,mouseover 和 mouseout 函数被不一致地调用。

这是正在发生的事情的示例,您必须将一个窗格拖到列表中,然后将 3-4 个文本框项目拖到窗格中才能看到问题。您可以看到右上角的 2 个数字正在跟踪鼠标的进出。请注意,到目前为止,我只在 Firefox 中测试了我的网站。

例子

我的jQuery代码:

以下是 mouseover 和 mouseout 函数:

p>

第一个可排序的列表:

update: function(ev, ui){ if (!ui.item.is('.noChange')){ addNewPane(ui.item); } }, start: function(event, ui){ if (ui.item.is('.noChange')){ $("#left-form-space").css({'height' : height}); $("#left-form-space").animate({height: "75px"}, 600, function(){ $("#left-form-space").css({'height' : 'auto'}); }); } }, stop: function(event, ui){ $item = ui.item; if ($item.is('.noChange')){ $item.css({'height' : '0px'}); $item.animate({height: "150px"}, 600, function(){ $item.css({'height' : 'auto'}); }); } }, placeholder: '.placeholder-highlight', cursor: 'move', revert: true });

我添加嵌套可排序列表的功能:

};

感谢您的任何帮助。

0 投票
1 回答
1113 浏览

event-handling - Javascript:事件监听器 mouseout

让我解释一下我的问题。我有一个 mouseout 事件分配给具有日历 ID 的 div 标签。现在,当调用此处理程序时(当鼠标不在日历 div 上时),我想等待 2 秒,然后查看鼠标是否仍然不在日历 div 上。如果鼠标我还在外面然后做一个功能,如果不是那么什么都不做。

我使用原型 javascript 库。我的代码如下:

谢谢

0 投票
2 回答
7492 浏览

jquery - jquery:在元素的鼠标悬停/鼠标移出时切换类,但如果在元素内部单击则保留类?

怀疑我想在这个方面太聪明了!

我正在开发一个 jQuery 插件功能,当您将鼠标悬停在/移出时,该功能将在元素上打开/关闭一个类,但如果您在悬停之前单击元素内部并不会切换,则不会删除该类元素在悬停之前已经具有该类。

我尝试提出以下建议:

...如果您在单击之前悬停,删除类并取消绑定单击的想法 - 如果您在悬停之前单击,取消绑定 mouseout 并且该类永远不会被删除。

显然(因为我在这里寻求帮助!)它不起作用 - 无论我是否在悬停之前单击元素内部,该类都会被删除。

谁能指出它失败的原因,并可能提出更好的解决方法?谢谢!

0 投票
4 回答
9908 浏览

java - Java Swing:在鼠标悬停时更改背景颜色

我已经实现了一个简单的鼠标侦听器,只要鼠标进入组件(JPanel),背景颜色就会改变,并且只要鼠标离开,它就会恢复。这有一些问题:

  • 有时鼠标移动得太快以至于不会触发mouseExit事件
  • 如果我的组件有孩子,当鼠标移动到孩子时,它会触发mouseExit
  • 如果我将鼠标快速移到孩子身上,则不会触发mouseEnter事件

我猜这对于 Swing 退伍军人来说是一件容易的事。对于如何解决这个问题,有任何的建议吗?我不想使用计时器之类的......

0 投票
4 回答
4147 浏览

jquery - jquery在单击事件后停止鼠标悬停事件

有人可以帮我弄这个吗

我正在尝试为单击事件中的元素设置不同的颜色。

问题是鼠标悬停事件使一切再次变白。所以,我永远不会看到活动(活动)类的颜色。

我能做什么,我已经尝试在 stopevent propagation() 行中加入?

谢谢,理查德

0 投票
2 回答
1211 浏览

javascript - JavaScript 动画下拉菜单

我正在尝试创建一个下拉菜单作为主菜单的子菜单。子菜单只是一个包含项目/链接的 div 元素。单击主菜单项时,子菜单会下拉并停留在那里。这很容易,但是如果光标离开子菜单,我希望子菜单向上滑动。换句话说,一个简单的“mouseout”事件。然而,似乎当光标进入子菜单内的一项时,会触发“mouseout”事件。如果您考虑一下,这就是您想要的,因为光标确实离开了子菜单元素,即使它没有离开它的边界。但是,这确实会带来问题,因为我只希望在光标移到子菜单元素边界之外时触发事件。

真正归结为,在另一个 div 中包含一个 div,如下所示:

现在,有两件事可能会导致 DIV-1 触发“mouseout”事件:

  1. 光标从 DIV-1 的边界内移动到这些边界外的区域
  2. 光标从 DIV-1 的边界内移动到 DIV-2 的区域

我的目标是能够将这两种情况彼此区分开来,但我无法弄清楚如何。

有没有人有一个很好的解决这个问题的方法?这似乎是一个足够普遍的功能,所以一定有人解决了它。

0 投票
2 回答
7377 浏览

actionscript-3 - AS3:鼠标离开舞台时 MOUSE_OUT 未触发

我正在开发一个网站,其中包含从上到下覆盖整个舞台的导航项目(请参见下面的更改图像),用户很容易用鼠标退出舞台,而不是触发MouseEvent.MOUSE_OUT“关闭”所需的事件说导航项目。

我应该Event.MOUSE_LEAVE用来检测鼠标何时离开舞台,并关闭任何启用的导航项目吗?这就是我一直在尝试做的事情,但是在从我的听众那里获得任何输出时遇到了麻烦。有任何想法吗?

替代文字 http://marcysutton.com/blog/wp-content/uploads/2010/01/redpropeller.png

对于与 Flash IDE 中的影片剪辑关联的类,这是注册Event.MOUSE_LEAVE侦听器的正确语法吗?无论我做什么,它似乎都没有做任何事情。是否必须将电影嵌入浏览器才能触发事件?

这是我的 MainNav.as 课程:

0 投票
2 回答
907 浏览

jquery - jQuery悬停仍然触发

我有以下问题。我正在研究一个简单的 jQuery 工具提示,现在我正在处理一些对我来说很奇怪的事情。每次我将鼠标悬停在元素上时,都会触发鼠标悬停和鼠标移出的事件 - 因此工具提示会消失(但如果我继续移交,它会在一秒钟内闪烁很多次)。这是我的代码。

和 HTML:

请问,有人知道为什么鼠标移出事件仍在触发并隐藏我的盒子吗?

非常感谢, Ondrej

0 投票
2 回答
987 浏览

jquery - JQuery - 鼠标悬停问题

我有以下场景......

当我将鼠标悬停在span.share-this上时,它会触发一个名为“ under ”的 div 进入视野。这一点完全按照我想要的方式工作。现在我设置它,当鼠标光标位于“under” div 上并且我鼠标移出时,“under” div 消失,一切都恢复原状(一切都还是花花公子)。

我的问题是,当我将鼠标悬停在span.share-this上并且不导航到“下” div,而是导航到页面的另一部分时,“下” div 仍然可见。

我想这样设置,如果我从span.share-this导航到页面的另一部分,“under” div 会隐藏。

有人知道我应该看什么功能吗?

jQuery 代码

HTML 代码

测试网址:http ://www.eirestudio.net/share/