Ich habe ein Hauptmenü.
Das Untermenü wird geöffnet, wenn auf den Link eines der PARENT <li>
geklickt wird, die untergeordnete Elemente haben.
An dieser Stelle wird eine Klasse moves-out
zum Hauptmenü hinzugefügt und ein CSS-Übergang wird gestartet.
Nach dem Ende des Übergangs wird das Untermenü angezeigt.
Das Untermenü enthält die angeklickte <li>
(wenn erneut geklickt wird uns zurück zum Hauptmenü) und es ist Kinder.
Hier ist mein Ziel, das Klickereignis auf dem Eltern <li>
für 1 Sekunde,
zu deaktivieren, dann nach dieser 1 Sekunde gibt es wieder die Möglichkeit, angeklickt werden, so dass wir zurück zum Hauptmenü gehen können.
Ein Beispiel der Navigation wäre:Klicken Sie nach dem ersten Klick der Verknüpfung auf link unclickable, warten Sie auf den Übergangsende + 1s, und stellen Sie die Verknüpfung erneut auf klick.
<ul class="main-nav">
<li><a href="#0">Home</a></li>
<li><a href="#0">Blog</a></li>
<li><a href="#0">About</a></li>
<li><a href="#0">Contact</a></li>
<li>
<a href="#0" class="subnav-trigger"><span>PARENT</span></a>
<ul>
<li><a href="#0">Child 1</a></li>
<li><a href="#0">Child 2</a></li>
<li><a href="#0">Child 3</a></li>
And so on...
</ul>
</li>
</ul> <!-- .main-nav -->
Der einzige Weg, die für mich gearbeitet wurde verstecken/die ELTERN zu zeigen, wenn das Hauptmenü die moves-out
Klasse hinzugefügt, um es wie so hat:
$('.subnav-trigger').on('click', function(event) {
event.preventDefault();
if ($('.main-nav').hasClass('moves-out')) {
var $this = $(this);
$this.hide();
setTimeout(function(){
$this.show();
}, 1000);
}
}
habe ich VIEL off Dinge ausprobiert, das ist die einzige, die in der Nähe von zu meinem Ziel.
Anstelle von $this.hide()
funktioniert $this.off('click')
funktioniert
aber innerhalb der setTimeout
was auch immer ich tun, um den Klick wieder zu gewinnen funktioniert nicht.
Jede Hilfe würde sehr geschätzt werden.
HINWEIS: Ich möchte damit schnelles Klicken/erneutes Klicken verhindern. Vergiss den Übergang nicht;)
Nochmals vielen Dank im Voraus für jede Hilfe.
SYA :)
Vielen Dank Dan, ich vor dem 'Zeiger-events' habe versucht, aber tat es falsch in der' setTimeout', ich fühle mich dumm LOL. Nochmals vielen Dank für Ihre Zeit und diese wirklich einfache klare Lösung. – LebCit
Ich freue mich, Ihnen behilflich zu sein. –