Ich versuche, das Ereignis zu erfassen, wenn ein Child-Element-Link angeklickt wird und fügen Sie die Klasse "highlightchild" hinzu. Ich möchte auch überprüfen, ob es einen untergeordneten Elementlink gibt oder nicht, wenn kein untergeordnetes Element existiert, dh "dritte Ebene" wird mit "highlightparent" hervorgehoben. Wie kann ich das mit jquery tun?Wie erfasst man untergeordnete Links, die mit jquery geklickt wurden?
$(document).ready(function() {
$('.menu ul').hide();
$('.menu .arrowUp').click(function() {
$('.menu ul').hide();
$(this).find(".third-level").toggle();
});
});
html
<ul class="menu">
<li class="arrowUp"><a href="#">link1</a>
<ul class="third-level" >
<!-- third level non-active -->
<li class="arrowUp"><a href="/somelink/">Some Link</a></li>
</ul>
</li>
<li class="arrowUp"><a href="#">link2</a>
<ul class="third-level" >
<!-- third level non-active -->
<li class="arrowUp"><a href="/links2/">some Links 2</a></li>
</ul>
</li>
<li class="arrowUp"><a href="#">link3</a>
<ul class="third-level" >
<!-- third level non-active -->
<li class="arrowUp"><a href="/Agri/">Agricultural</a></li>
<!-- third level non-active -->
<li class="arrowUp"><a href="/sugar/">Sugar</a></li>
<!-- third level non-active -->
<li class="arrowUp"><a href="/bbc/">Coffee</a></li>
<!-- third level non-active -->
<li class="arrowUp"><a href="/cnn/">Energy</a></li>
<!-- third level non-active -->
<li class="arrowUp"><a href="funstuff">Fun stuff</a></li>
</ul>
</li>
<li class="arrowUp"><a href="#">link4</a></li>
<li class="arrowUp"><a href="#">link5</a></li>
<li class="arrowUp"><a href="#">link6</a></li>
</ul>
Ich denke, das ist die bessere Alternative als das Hinzufügen von Listenern zu allen Knoten. Mein einziger Vorschlag wäre, dass Sie eine Überprüfung für $ (this) .hasClass (". Highlightchild") statt Abfragen, Entfernen, Hinzufügen durchführen könnten. – Newtang
@Newtang: Es ist zum Entfernen der Klasse von dem zuvor angeklickt Element. '$ (this) .hasClass (". highlightchild ")' würde nur helfen zu sehen, ob das Element das vorher angeklickte war. Ich bin mir aber nicht wirklich sicher, was das OP erreichen will und ob meine Lösung passt. Aber Ereignisdelegierung ist etwas, das bevorzugt werden sollte, als Tausende von Ereignissen handler.s hinzuzufügen –