Wie wird das Dropdown-Menü zum Öffnen / Schließen auf einen Klick anstatt auf den Mauszeiger gebracht?

8

Ich bin sehr neu bei Javascript und Ajax / Jquery und habe daran gearbeitet, ein Skript zum Öffnen und Schließen des Drop-Menüs zu bekommen, wenn ich auf diesen Hover klicke.

Das fragliche Menü befindet sich auf Ссылка und ist das dunkle Menü auf der rechten Seite unter der Kopfzeile. Ich möchte es öffnen und schließen wie das andere Menü, das weiter unten liegt (es ist hellgrau und befindet sich im Modul "Select Division").

Das graue Menü ist Teil eines Menüs und das Sprachenmenü nicht.

Ich habe auch einen jquery-Import, der in der View-Quelle des obigen Links zu finden ist.

Mein JavaScript-Code:

%Vor%

Mein CSS:

%Vor%

Mein HTML:

%Vor%

Danke!

    
Meta 30.05.2010, 04:32
quelle

5 Antworten

9
%Vor%

Mit toggle müssen Sie klicken, um zu öffnen, dann klicken Sie zum Schließen

    
RobertPitt 30.05.2010, 04:55
quelle
3

Ich würde so etwas tun ...

%Vor%

Und dann fügen Sie im CSS Folgendes hinzu:

%Vor%

& lt; & lt; EDIT: Entfernte "ul" von ".active" -Klasse für CSS-Rendering-Effizienz & gt; & gt;

Stellen Sie außerdem sicher, dass das Subnav & lt; ul & gt; hat "display: none;" standardmäßig auf Ihrem CSS.

Dies wird es so machen, dass ein & lt; li & gt; Tag in # lang-selector, aber nicht in einem Subnav & lt; ul & gt; Tags öffnen oder schließen das Sub-Nav, abhängig vom aktuellen Status.

Wenn Sie sich Sorgen machen, dass barrierefreies Arbeiten mit "display: none" im Subnav standardmäßig möglich ist, können Sie so etwas tun ...

%Vor%

& lt; & lt; BEARBEITEN: Geänderte Selektoren, um dem gegebenen Beispiel zu entsprechen, verwandelten "dieses" in jQuery-Objekt. & gt; & gt;

Und dann füge das auch dem CSS hinzu

%Vor%

In diesem Szenario haben Sie die & lt; ul & gt; Standardmäßig wird jQuery angezeigt, wenn das Dokument geladen wird, fügt jQuery allen die Klasse "hidden" hinzu, um sie auszublenden, und dann auf den Klick von & lt; li & gt; Es schaltet die versteckten und aktiven Klassen um, zeigt sie an oder versteckt sie.

Sie müssen auch Ihre aktuelle "display: none" aus Ihrer # lang-selector ul ul in CSS entfernen, ansonsten hat sie Vorrang vor den versteckten / aktiven Klassen.

    
RussellUresti 30.05.2010 04:56
quelle
3

suche diese $("#lang-selector li").hover und ersetze sie mit

%Vor%     
sushil bharwani 30.05.2010 04:37
quelle
1

.hover, .click, .etwas, sind alle Trigger, diesen Link anzeigen:

Jquery-Ereignisse

um mehr über Ereignisse in Jquery zu erfahren!

Ps: sushil bharwani (stimmen Sie), ist richtig, ändern Sie einfach Ihre .hover mit dem .click

    
Zuul 30.05.2010 04:50
quelle
1

Wenn Sie zwei Funktionen für ein Klickereignis benötigen, versuchen Sie es mit .toggle

Ich benutze das:

%Vor%

Damit kann ich mehr Funktionen für die 2 Funktionen ausführen als nur den .click mit seiner 1 Funktion.

    
Havihavi 07.06.2012 10:39
quelle