【问题标题】:jquery hover alternate not working in IE10jQuery悬停替代在IE10中不起作用
【发布时间】:2014-03-20 19:26:49
【问题描述】:

我有一个有两个级别的导航。

<ul id="level1">
  <li id="Level1ListItemOne">
      <ul id="Level2">
        <li></li>
        <li></li>
        ...
     </ul>  
 </li>
  <li id="Level1ListItemTwo">
      <ul id="Level2">
        <li></li>
        <li></li>
        ...
     </ul> 
  </li>
  ...
</ul>

当页面打开时 Level1ListItemOne Level2 是可见的。 当用户将鼠标悬停在 Level1ListItemTwo 上时,Level1ListItemOne 的 Level2 消失,Level1ListItemTwo 的 Level2 出现。 当用户将鼠标悬停在 Level1ListItemTwo 之外时,Level1ListItemOne 的 Level2 会重新出现。

我正在用 JQuery 做这个

jQuery("#Level1ListItemTwo").hover(
    function(){ 
        jQuery("#Level1ListItemOne> #level2").hide(); //hide level2 when hover over
        jQuery("#Level1ListItemOne").css("background-color","#003366");
    },
    function(){
        jQuery("#Level1ListItemOne> #level2").show(); //show level2 when hover out
        jQuery("#Level1ListItemOne").css("background-color","#0072c6");
    }
);

这在 FireFox、Chrome、IE9 中完美运行,但 不是 IE10

在 IE10 中它第一次可以工作,但之后就不行了。所以 Level1ListItemTwo 的 Level2 永远不会再出现。 IE10 有什么不同 - 我在开发者工具中看不到任何东西!

【问题讨论】:

  • 试试 jQuery.noConflict();
  • 上面的jquery在jQuery.noConflict()中; jQuery(document).ready(function () {});
  • 您在 ul 列表中使用相同的 ID Level2。如果您希望这两个项目具有相同的 id 名称,最好使用 class,因为元素 ID 在整个文档中应该是唯一的。

标签: jquery css hover internet-explorer-10


【解决方案1】:

我认为这是因为您的 id 不正确,因为区分大小写。

如果浏览器支持,jQuery 的类选择器使用 javascript 方法 getElementsByClassName。此方法在 quirks-mode 页面上不区分大小写,在非 quirks-mode(符合标准)页面上区分大小写。

另一个提示,id 在你的页面中必须是唯一的,所以切换到 class 而不是 id。

代码:

jQuery("#Level1ListItemTwo").hover(
    function(){ 
        jQuery("#Level1ListItemOne>.Level2").hide(); //hide level2 when hover over
        jQuery("#Level1ListItemOne").css("background-color","#003366");
    },
    function(){
        jQuery("#Level1ListItemOne>.Level2").show(); //show level2 when hover out
        jQuery("#Level1ListItemOne").css("background-color","#0072c6");
    }
);

参考:https://developer.mozilla.org/en-US/docs/Case_Sensitivity_in_class_and_id_Names

演示:http://jsfiddle.net/W9GL4/

【讨论】:

  • 感谢,但我认为我必须坚持使用 id,因为正在呈现的 HTML 已经应用了许多类。我正在尝试自定义 SharePoint 导航控件,所以它不是那么简单
  • @user3441600 我认为你不能 id 根据定义必须是唯一的
猜你喜欢
  • 2014-06-10
  • 2012-12-18
  • 2013-04-06
  • 2012-02-27
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 2018-11-05
  • 2014-01-02
相关资源
最近更新 更多