jQuery / JavaScript - запуск при наведении курсора на элемент при наведении мыши на другой элемент - PullRequest
2 голосов
/ 30 августа 2010

Возможно ли это?Мой 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.

Ответы [ 2 ]

5 голосов
/ 30 августа 2010

Если вы используете .hover(), это также повлияет на родителя, поскольку именно так работают события mouseenter и mouseleave, например:

$("li").hover(function() {
  $(this).toggleClass("active");
});

Вы можете попробовать здесь , в отличие от mouseover и mouseout, события не срабатывают при входе / выходе из детей, поэтому действие, предпринятое для родителя, не выполняется.«отменять» до тех пор, пока вы фактически не оставите родителя, что, похоже, является тем, что вам нужно.

Или используйте чистый CSS, если вы просто делаете стили, как это (не работает вIE6):

li:hover > a { color: red; }​

Вы можете проверить это здесь .

1 голос
/ 30 августа 2010

Вы можете связаться с родительским узлом с помощью метода parent () и переключить его класс, связывая события mouseover и mouseout.

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