JQuery: Ruft die Elternelement-ID eines angeklickten Elements ab

8

Ich habe ein Div wie folgt:

%Vor%

Wenn ich auf das 'x' klicke (Ich möchte eine jquery-Funktion namens disablePopup(id); ausführen, wobei id die ID des entsprechenden PopupDiv ist (ich habe viele popupDiv mit jeweils eigener X-Schaltfläche.

Um dies zu tun, habe ich Folgendes implementiert:

%Vor%

Grundlegend bekomme ich die ID der popupCloseClass angeklickt, dann bekomme ich die ID des übergeordneten Elements (das entsprechende popupDiv) über die nächste Methode. dann rufe ich disablePopup auf.

Aber das funktioniert nicht.

Ich habe sogar versucht, die var buttonID = $(buttonID).parent().attr("id"); -Methode zu verwenden, aber auch nicht.

Ich habe auch var id = this.id;

ausprobiert

Jede Hilfe wird sehr geschätzt

Danke

    
Youssef 29.03.2012, 08:51
quelle

4 Antworten

13

anstatt closest zu verwenden, können Sie parent so verwenden ...

%Vor%

Beachten Sie, dass Sie mit dem Schlüsselwort this auf das Element verweisen können, das das Ereignis ausgelöst hat. Wie Sie es haben, verwenden Sie den Wert von buttonID als Elementselektor, der den Wert "popupDivClose" haben würde, und ohne ein # hinzuzufügen, wird beim Start nicht nach einer ID, sondern nach einem Tag-Element gesucht namens "popupDivClose".

Wenn Sie buttonID weiterhin verwenden wollten, hätten Sie diese Codezeile verwenden können, damit es funktioniert ...

%Vor%

Allerdings hätte ich es vorgezogen, das ganze Event so zu schreiben ...

%Vor%

Beachten Sie die Verwendung von event.preventDefault(); . Dadurch wird sichergestellt, dass der Browser die natürliche Aktion für einen Link-Klick (z. B. Seitennavigation) nicht verarbeitet. Allerdings müssen Sie zumindest in Chrome einen href-Wert für die Navigation angeben

Hier ist ein funktionierendes Beispiel

    
musefan 29.03.2012, 08:53
quelle
0

Dies muss funktionieren:

%Vor%     
pascalvgemert 29.03.2012 08:55
quelle
0

Sie sollten

tun %Vor%

(Sie könnten auch $(this).parent().attr("id"); verwenden), aber die Verwendung von engsten ist sicherer, wenn Sie Ihre HTML-Struktur ändern

    
Nicola Peluchetti 29.03.2012 08:53
quelle
0

Das funktioniert gut:

%Vor%

JSFiddle-Demo

Sie sollten einfach this anstelle der Art und Weise verwenden, wie Sie die ID erhalten und dann versuchen, sie als Selektor zu verwenden (Ihnen fehlte # vor der ID):

    
Richard Dalton 29.03.2012 08:55
quelle

Tags und Links