CSS reagiert nicht auf Datenattribute, die über jQuery festgelegt wurden

8

Ich setze ein data-position -Attribut für das Dokument über jQuery auf mehrere divs. Die Einstellung funktioniert definitiv. Wenn Sie beispielsweise den folgenden Code in der Chrome-Konsole aufrufen, wird 'left' zurückgegeben.

%Vor%

Aber im CSS macht das unten nichts.

%Vor%

Hard-Coding data-position="left" in der Div funktioniert jedoch. Was mache ich falsch? Danke für die Hilfe

    
birnbaum 15.10.2013, 10:39
quelle

3 Antworten

15

Wenn Sie ein data -Attribut so setzen, wie es ist, bedeutet dies, dass es im jQuery-Cache gespeichert ist (was ein Objekt im Speicher ist). Es wird nicht als Attribut für das Element festgelegt und daher wird es kein CSS-Selektor sehen / p>

Sie müssten das Attribut data mit attr manuell setzen, damit dies funktioniert:

%Vor%

Beachten Sie jedoch, dass dies beim Abrufen des Datenwerts zu einer etwas reduzierten Leistung führt, obwohl wir in Millisekunden sprechen.

    
Rory McCrossan 15.10.2013, 10:45
quelle
2
%Vor%

Referenz attr

    
Rituraj ratan 15.10.2013 10:42
quelle
0

jQuerys Methode data() ändert das Attribut nicht wirklich. Um das Attribut für das Element selbst zu ändern, müssen Sie attr() :

verwenden %Vor%     
James Donnelly 15.10.2013 10:42
quelle