javascript - 将鼠标悬停在选择框上时,Jquery 悬停功能会失灵

标签 javascript jquery html cross-browser

我的要求是,当我将鼠标悬停在弹出窗口上并在表单上选择某些内容时,弹出窗口应该保持可见。

如果弹出窗口失去移动悬停,它应该被隐藏

以下代码一切正常。但是当我尝试在选择框中选择选项时(从弹出窗口中下拉的选项),弹出窗口被隐藏。

这是 JSFIDDLE 链接 http://jsfiddle.net/LNGz6/5/并且此问题仅在 Internet Explorer

中出现

这是代码

<div id="popup">
 <div class="label"> Search </div>
  <div class="control"> 
      <select name="searchval">
         <option value="entries">Entries</option> 
         <option value="bookings1">bookings1</option>
         <option value="bookings2">bookings2</option>
         <option value="bookings3">bookings3</option>
         <option value="bookings4">bookings4</option>
         <option value="bookings5">bookings5</option>
         <option value="bookings6">bookings6</option>
      </select>
   </div>
</div>

Jquery函数

$("#popup").hover(function(){
   //do none
},function(){
   $(this).hide();
});

最佳答案

您会遇到这种行为,因为事件会在 DOM 树中冒泡并触发潜在的父事件处理程序。您有两种选择来解决此问题:

1) 在 select 元素上添加事件处理程序并停止事件冒泡:

$("select[name=searchval]").hover(function(e){
    e.stopPropagation();
});

2) 检查事件目标并相应地防止隐藏:

$("#popup").hover(function(){
   //do none
},function(e){
   if (e.target == this){
      $(this).hide();
   }
});

Example对于后者 - 隐藏仅在红色部分触发 - 其中 div 未被子元素重叠。

关于javascript - 将鼠标悬停在选择框上时,Jquery 悬停功能会失灵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11900418/

相关文章:

javascript - 单击附加的外部内容不起作用

javascript - webgl 丢失对 javascript 中对象的引用

c# - 使用 jquery 打开 RDP 连接窗口 - 客户端

jquery - 基本的toggle()从下到上滑动问题

javascript - 如何使用jquery替换html标签

javascript - 使用 JavaScript 函数添加动态 HTML 内容

javascript - 在文本输入字段上模拟退格键

javascript - 使用 Angular JS 在 HTML 中添加新行

php - 需要抓取需要设置 "i agree"cookie 的网站内容

javascript - 如何在 Canvas 上更改 id