2 Stimmen

addClass wenn ul existiert (jQuery)

Ich baue ein einfaches Dropdown, wo ich eine Klasse zu übergeordneten hinzufügen möchte, wenn UL vorhanden ist:

HTML:

<ul id="menu">
  <li><a href="#">Parent 1</a></li>
  <li><a href="#">Parent 2</a>
    <ul>
      <li><a href="#">Sub 2.1</a></li>
      <li><a href="#">Sub 2.2</a></li>
    </ul>
  </li>
</ul>

Das würde ich gerne tun:

  • alle verschachtelten ( ul#menu > li > ul ) ul's zunächst
  • verschachtelt anzeigen/ausblenden ul beim Schweben
  • addClass "dropdown" zu Eltern, die verschachtelte ul's haben

Das funktioniert nicht ganz, ich weiß nicht warum:

$(function () {
    $("ul#menu li").hover(function () {
        $(this).addClass("hover");
        $('ul:first', this).css('visibility', 'visible');
    },
    function () {
        $(this).removeClass("hover");
        $('ul:first', this).css('visibility', 'hidden');
    });
    $("ul#menu li ul li:has(ul)").find("a:first").addClass("dropdown");
});

Vielen Dank für Ihre Hilfe!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X