将鼠标悬停在元素中包含的子输入文本字段上时,元素会触发mouseout或mouseleave事件

时间:2011-02-15 18:24:58

标签: javascript jquery google-chrome

此错误仅适用于Chrome。

我有一个包含输入文本字段的div。默认情况下,div是隐藏的,并显示在按钮单击事件上,并隐藏在mouseleave事件上。

在Chrome中,如果将鼠标悬停在包含的文本字段上,则会触发mouseout / mouseleave事件并隐藏div。

复制步骤:

  • 在Chrome中打开http://jsfiddle.net/2AKAp/3/
  • 点击按钮显示div
  • 将鼠标悬停在文字字段外的div中的任意位置,它不应隐藏
  • 将鼠标悬停在文本字段上并隐藏div

只是想知道这是否是你之前遇到的事情。


以下是跟踪此问题的Chromium团队提交的错误: http://code.google.com/p/chromium/issues/detail?id=68861

看起来这是Chrome的一个错误,它已修复。这个修复程序将在版本11中推出。

1 个答案:

答案 0 :(得分:2)

我使用contenteditable进行了解决方法,但需要进行大量改进:

http://jsfiddle.net/2AKAp/6/

  • 如果您制作了很多行并且容器展开,请将移动移动到展开区域,然后删除一些文本并将鼠标移出div,鼠标输出永远不会触发,直到您重新进入并再次离开(chrome )
  • 必须有一种简单的方法将字符限制为c.e.领域

得到它:

将你的逻辑包装在if(event.target == this)中并且问题神奇地消失