Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
jQuery/JavaScript-鼠标悬停在另一个元素上时,触发器悬停在该元素上_Javascript_Jquery_Html_Menu_Mouseover - Fatal编程技术网

jQuery/JavaScript-鼠标悬停在另一个元素上时,触发器悬停在该元素上

jQuery/JavaScript-鼠标悬停在另一个元素上时,触发器悬停在该元素上,javascript,jquery,html,menu,mouseover,Javascript,Jquery,Html,Menu,Mouseover,这可能吗?我的HTML如下所示: <ul> <li> <a> link </a> </li> <li> <a> link </a> </li> <li> <a> link </a> <ul> <li> <a> sub-link </a> </li>

这可能吗?我的HTML如下所示:

<ul>
  <li> <a> link </a> </li>
  <li> <a> link </a> </li>
  <li> <a> link </a> 
    <ul>
      <li> <a> sub-link </a> </li>  
      <li> <a> sub-link </a> </li>  
      <li> <a> sub-link </a> </li>  
    </ul>
  </li>
</ul>  
  • 链接
  • 链接
  • 链接
    • 子链接
    • 子链接
    • 子链接
基本上,当鼠标位于子菜单链接上时,我希望在父菜单链接上触发悬停CSS规则。

如果使用它,也会影响父菜单链接,因为这就是
鼠标指针
鼠标移动
事件的工作方式,例如:

$("li").hover(function() {
  $(this).toggleClass("active");
});
mouseover
mouseout
不同,事件在进入/离开子对象时不会触发,因此在您实际离开父对象之前,对父对象执行的操作不会“撤消”,这似乎是您所追求的

或者,如果您只是在进行样式设置,请使用纯CSS,例如(在IE6中不起作用):


.

您可以使用parent()方法访问父节点,并切换其绑定mouseover和mouseout事件的类

$("#childnode").bind("mouseover", function() {
   $(this).parent().addClass("onmouseover");
}).bind("mouseout", function() {
   $(this).parent().removeClass("onmouseover");
});

解决这个问题的方法是在
  • 元素上移动悬停样式,但我不确定这是否是一个好主意:将悬停在li而不是a上……嗨。我知道,但我不是说启用鼠标悬停事件,我只是希望:hover样式应用于父链接,即使鼠标不在其上。@Alex-如果您将
    :hover
    放在
  • 上,您可以这样做:oh nvm:D tx,我将使用li:hover@Alex-确保你有CSS,就像它在演示的右边一样…你有一个示例页面,我可以看一下。谢谢你,实际上我需要的只是“>”CSS的东西。我不知道:)
    $("#childnode").bind("mouseover", function() {
       $(this).parent().addClass("onmouseover");
    }).bind("mouseout", function() {
       $(this).parent().removeClass("onmouseover");
    });