【问题标题】:IE bug with hover on select and options将鼠标悬停在选择和选项上的 IE 错误
【发布时间】:2011-12-02 03:38:10
【问题描述】:

我正在尝试在 div 上进行悬停,但是当我悬停选项时,div 的悬停会受到影响。

示例代码:

<div class="levelThreeMenuColumnTwo" id="clientFormMenu">
    <div class="formMenuPFS">
        <select name="select1">
            <option value="TN">
                Tennessee
            </option>
            <option value="VA" selected="selected">
                Virginia
            </option>
            <option value="WA">
                Washington
            </option>
            <option value="FL">
                Florida
            </option>
            <option value="CA">
                California
            </option>
        </select>
    </div>
 </div>
<style>
.formMenuPFS{
    display:none;
    background-color:red;
    width:110px;
    height:110px;
    position:absolute;
    left:200px;
}
.levelThreeMenuColumnTwo:hover .formMenuPFS{
    display:block;
}
.levelThreeMenuColumnTwo{
    display:block;
    background-color:green;
    width:200px;
    height:200px;
}
</style>

在 FF 中工作,但不在 IE 中。

正确的行为: 当悬停绿色 div 时显示红色 div。 当悬停选择或选项时,一直显示红色 div。

如果需要 javascript,我可以使用 dojo 1.4。 谢谢。

【问题讨论】:

  • 您使用什么版本的 IE 进行测试?
  • 您能否在JS Bin 上展示您目前所拥有的(上面的代码),确保它在 Firefox 中仍然有效并且在 IE 中仍然中断?
  • 所有 IE 版本。 jsbin.com/aralak。代码只是上面的代码,可以复制粘贴到html文档中测试。

标签: css internet-explorer dojo hover


【解决方案1】:

我知道这是一个老问题,但我遇到了同样的问题,我在你的 jsbin 中通过以下方式修复了它。我没有使用 CSS :hover,而是使用了 jQuery 悬停并添加了 event.stopPropagation() 选择。

JS

$(document).ready(function(){
    $(".levelThreeMenuColumnTwo").hover(function() {
        $('.formMenuPFS').show();
        $('.formMenuPFS select').mouseleave(function(event) { event.stopPropagation(); });
    }, function() {
        $('.formMenuPFS').hide();
        $('.formMenuPFS select').mouseleave(function(event) { event.stopPropagation(); });
    });
});

jsbin http://jsbin.com/xitafazoca/

【讨论】:

  • 您在事件处理程序中添加的事件处理程序可能不是您想要的
  • 好吧,因为您想在悬停特定 div 时取消 mouseLeave 事件。我认为这就是您在这种情况下想要的。
  • mouseleave 事件与stopPropogation 只需要附加一次,然后它总是会拦截mouseleave。每次levelThreeMenuColumnTwo 悬停在其上时都不需要重新附加
  • 啊,我明白了,您能否创建一个示例,说明如何在此示例中仅附加一次?我自己想不出一种方法来自动取款
猜你喜欢
  • 2011-05-16
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多