Chrome offset () gibt Nullwerte für die Option zurück

8

Ich kann die Offset-Position einer Option innerhalb einer Auswahl nicht berechnen:

%Vor%

Chrome gibt zurück (alle jQuery-Versionen wie 1.7.2, 1.9 getestet):

%Vor%

FF gibt zurück:

%Vor%

Ich brauche die Positionen wie FF zurückgibt. Gibt es eine Problemumgehung für Chrome?

Ссылка

    
Chris 12.03.2013, 09:53
quelle

2 Antworten

2

Ah ... eine Lösung, die ich mir vorstellen kann, ist, das select durch ein ul-Objekt zu ersetzen und Event-Handler anzuhängen, um das select mit ul zu verknüpfen. Der Aufruf von .offset () für li-Elemente funktioniert sowohl in FF als auch in Chrome erwartungsgemäß.

Wenn Sie also auf die li-Elemente klicken, wird die Hintergrundfarbe aktualisiert und der ausgewählte Wert der ausgeblendeten Auswahl aktualisiert. Auf diese Weise wird beim Senden des Formulars der korrekte Wert gesendet.

Ссылка

HTML:

%Vor%

CSS:

%Vor%

JS:

%Vor%

BEARBEITET

Also habe ich eine andere Methode nach dem Huangism-Vorschlag mit offset () und scrollTop () des select-Elements versucht.

Nur die Höhe des Optionselements ist nicht verfügbar. Also habe ich versucht, die Schriftgröße zu schätzen, aber es war nicht perfekt, und ich musste magische 3 in Chrome hinzufügen, um die genauen Offsets zu erhalten. Wenn Sie die Höhe des Optionselements herausfinden können, müssen Sie nicht mit allen oben genannten ul / li-Geschäften fertig werden.

Hier ist es:

Ссылка

%Vor%     
haejeong87 15.03.2013, 12:42
quelle
0

Ich würde sagen, dass chrome 0 zurückgibt, weil die Option nicht sichtbar ist, so dass das obere nicht berechnet werden kann. Dies kann auch in Safari passieren, da es sich um Webkit-Browser handelt. Das einzige, was ich mir vorstellen kann, ist, dass Sie den Offset-Anfang der Auswahl erhalten und dann einige Berechnungen durchführen, um ungefähr die Spitze der Option zu erhalten. Wenn eine Option beispielsweise eine Höhe von 10 Pixeln hat, müssen Sie wissen, wie viele Optionen vor der gewünschten liegen und wie viele Pixel Sie der Auswahlspitze hinzufügen müssen.

    
Huangism 12.03.2013 21:24
quelle

Tags und Links