Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用IE6中的jQuery弹出CSS菜单_Jquery_Css - Fatal编程技术网

使用IE6中的jQuery弹出CSS菜单

使用IE6中的jQuery弹出CSS菜单,jquery,css,Jquery,Css,我有一个非常简单的jQuery函数,它允许ul.lev2在悬停时显示 $('#tab_menu li.li_level1').hover( function() { $('#tab_menu ul.li_level2', this).css('display', 'block'); }, function() { $('#tab_menu ul.li_level2', this).css('display', 'none'); }); 不幸的是,它不适用于我的html标记。我真的找不到

我有一个非常简单的jQuery函数,它允许ul.lev2在悬停时显示

$('#tab_menu li.li_level1').hover(
  function() { $('#tab_menu ul.li_level2', this).css('display', 'block'); },
  function() { $('#tab_menu ul.li_level2', this).css('display', 'none'); });
不幸的是,它不适用于我的html标记。我真的找不到哪里出了问题

HTML:

每当我将$this从jQuery中删除时,它似乎是有效的,但我有不止一个ul.lev2的li标记,因此每当我悬停在任何父li上时,它都会明显地推送所有子ul标记

有什么想法吗

$('#tab_menu ul.li_level2', this)
您的意思是在选项卡菜单中的某个位置选择ul.li_level2元素。因为这是一个级别1的元素,你永远不会在里面找到tabmenu

这是一个“范围选择器”。它要求选择器选项卡菜单中最左边的元素位于上下文节点中,而不仅仅是您实际选择的最右边的元素

你可能是说:

$('ul.li_level2', this)
因为它总是在tab_菜单中,所以您不需要检查它


jQuery的上下文节点总是引入范围选择器。这与document.querySelector(例如document.querySelector)相反,后者适用于您的示例,因为所选的ul.li_level2既在tab_菜单内,也在该菜单内。提议引入作用域选择器作为浏览器级标准,但还没有人实施它。

ehm。。您正在尝试访问

$('ul.li_level2', this)
但我不存在于你发布的代码中。你应该找到

$('ul.level2', this)

谢谢你的回答,非常有帮助。但我注意到,如果我的li.lev_1不符合第一种风格的话,jqury将不会接我的li.lev_1。因此,当我在ly li tag style=reserves level\u 1 parent parent\u level\u 1 parent\u parent\u level\u 1时,我必须将jquery更改为$'tab\u menu li.reserves'。悬停。。然后它工作得很好。问题是li.lev_1是唯一一个在整个lev 1菜单中重复自身的类。呃。。。你确定你指的是风格吗?在我看来像是一张班级名单。类列表中以空格分隔的名称的顺序是不相关的;我可以向您保证,li.level_1将匹配。
$('ul.level2', this)