jquery onclick dropdown-Menü
Mithilfe von Google fand ich diesen code hier auf stackoverflow. Ich benutze es, um zu zeigen, ein dropdown-Menü, wenn der Benutzer klicken Sie auf das übergeordnete element und das dropdown-Menü verschwindet, wenn der Benutzer klicken Sie erneut auf das übergeordnete element. Ich brauche, um hinzuzufügen zwei "features", aber ich weiß nicht wie.. Hier ist der code:
<script>
$(document).ready(function() {
$('.parent').click(function() {
$('.sub-nav').toggleClass('visible');
});
});
</script>
<script>
$(document).ready(function() {
$('.parent2').click(function() {
$('.sub-nav2').toggleClass('visible');
});
});
</script>
<script>
$(document).ready(function() {
$('.parent3').click(function() {
$('.sub-nav3').toggleClass('visible');
});
});
</script>
<script>
$(document).ready(function() {
$('.parent4').click(function() {
$('.sub-nav4').toggleClass('visible');
});
});
</script>
<script>
$(document).ready(function() {
$('.parent5').click(function() {
$('.sub-nav5').toggleClass('visible');
});
});
</script>
Hier gibt es die html:
<li class="parent">chi siamo
<ul class="sub-nav">
<li><a href="http://www.sanremoset.it/chi_siamo/carla_evangelista.html">Dott.ssa Carla Evangelista</a></li>
<li><a href="http://www.sanremoset.it/chi_siamo/fulvio_torello.html">Dott. Fulvio Torello</a></li>
<li><a href="http://www.sanremoset.it/chi_siamo/mauro_evangelista.html">Dott. Mauro Evangelista</a></li>
<li><a href="http://www.sanremoset.it/chi_siamo/claudio_lanteri.html">Dott. Claudio Lanteri</a></li>
<li><a href="http://www.sanremoset.it/chi_siamo/francine_bontemps.html">Dott.ssa Francine Bontemps</a></li>
</ul>
</li>
<li class="parent2">prevenzione
<ul class="sub-nav2">
<li><a href="http://www.sanremoset.it/prevenzione/richiami_periodici.html">Richiami periodici</a></li>
<li><a href="http://www.sanremoset.it/prevenzione/igiene_orale.html">Igiene orale</a></li>
<li><a href="http://www.sanremoset.it/prevenzione/desensibilizzazioni.html">Desensibilizzazioni</a></li>
<li><a href="http://www.sanremoset.it/prevenzione/fluoro.html">Fluoro</a></li>
<li><a href="http://www.sanremoset.it/prevenzione/tests_salivari.html">Tests salivari</a></li>
<li><a href="http://www.sanremoset.it/prevenzione/prevenzione_tumori.html">Prevenzioni tumori</a></li>
</ul>
</li>
Hier der Css-code für die sub-nav li-element. Die übergeordnete Klasse hat kein css ich verwende es nur, um das Feuer der jquery-code:
#menu .sub-nav li{
float: left;
width: 165px;
list-style: none;
text-align: left;
font-size: 14px;
font-family: "Helvetica Neue";
border-left: 1px solid;
border-right: 1px solid;
background-color: #e8e8e8;
margin-top: 0px;
}
Die erste Sache ist, dass ich das Menü ausblenden, wenn der Benutzer klickt auf einen anderen link oder außerhalb der dropdownmenu.
Die zweite Sache ist, dass ich will, der Zeiger zu einer hand, wenn der Benutzer gehen, fahren Sie mit der <li>
mit der übergeordneten Klasse.
Wie diese zwei Funktionen?
Edit: ok, vergiss die zweite Sache, die ich gerade entdeckt, wie Sie diese einfach über das folgende Stück css-code:
li { cursor: pointer; }
Fand ich diesen code, und es funktioniert, aber nur die erste Zeit.. :
<script>
$(document).click(function(e){
var targetbox = $('.parent');
if(!targetbox.is(e.target) && targetbox.has(e.target).length === 0){
$('.sub-nav').css("visibility", "hidden");
}
});
</script>
- Ich fühle mich wie Sie Links aus der CSS sollen wir zu suchen an, weil ich weggeworfen, den code in ein CodePen link und nichts zeigt sich.
- sorry, ich vergaß hinzuzufügen, das css der <li> - element
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der trick kann so einfach sein wie das hinzufügen einer unsichtbaren "button" Hut bedeckt den ganzen Bildschirm, wenn das Menü geöffnet ist, können Sie klicken Sie außerhalb des Menüs Bereich, und das Menü wird geschlossen.
Eine demo finden Sie auf meiner codepen:
http://codepen.io/Himechi90/pen/YyQrPr
Auch, Sie nicht haben zu schreiben, so viele jquery-Trigger. Wenn Sie Namen alle Ihre sub-nav-Klassen als "sub-nav", du kannst es wie unten:
Glück! 🙂
Den
javascript
code muss verkürzt werden, und Sie brauchen nicht zu wiederholen$(document).ready
für jeden Klick.Auch das markup könnte besser sein, ich schlage vor, statt
<ul>
als container für<li>
verwenden<div>
element.Diesem link auf der fiddle könnte hilfreich sein, einen Blick auf fiddle
http://www.jsfiddle.net/NFTFw/29/