détecte le lien au niveau 2 li et ajoute une étendue, plus ajoute la classe au parent parent au survol

StackOverflow https://stackoverflow.com/questions/1824265

  •  22-07-2019
  •  | 
  •  

Question

Je travaille sur un menu de liste non ordonnée à deux niveaux et, jusqu’à présent, j’ai été en mesure de prendre quelques mesures novices pour déterminer comment afficher et masquer le menu à l’aide de jQuery, ainsi que l’animer un peu.

J'ai deux problèmes à résoudre:

  1. Je veux que le parent li reste en vol stationnaire quand il est survolé pendant que la souris plane sur son enfant ul
  2. Je voudrais détecter si le parent parent a un ul et ajouter une étendue entre les balises a, ce qui donne: <a href="#">Text <span style="addedStyle">&nbsp;</span></a>

Voici le jQuery que j'utilise jusqu'à présent. la " .addClass (" active & ";) &"; ne semble pas faire grand chose:

$(".leftMenu li:has('ul')").hover(
    function(){
        $(this).addClass("active").children().animate({opacity: 'show'});
    },
    function(){
        $(this).removeClass("active").children().hide();
    }
);
//this line is wrong and non-functional
$(".leftMenu li:has('ul > a')").append('<span class="arrowdiv">&nbsp;</span>');

Nous attendons!

Était-ce utile?

La solution

Je l'ai compris. Apprendre quelque chose de nouveau chaque jour!

Je devais trouver le " un " et l'ajouter à cela. il s’agissait simplement d’ajouter à tout le li et je devais me concentrer sur le a, ce que j’ai bien évidemment fait de la sorte:

$(".leftMenu li:has('ul') > a").append('<span class="arrowdiv">&nbsp;</span>')
.parent().hover(
function(){
  $(this).addClass("active").children().animate({opacity: 'show'});
},
function(){
 $(this).removeClass("active").children().hide();
}
);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top