Heim >Web-Frontend >js-Tutorial >Sichere Ersatzmethode für die jQuery.position()-Methode, die den value_jquery nicht erhalten kann
Der Aufruf der Methode jQuery.position() gibt die Position relativ zum übergeordneten Element zurück. In der offiziellen Dokumentation von jQuery wird beschrieben, dass sie sich von der Methode .offset() unterscheidet. while .position() gibt die Position relativ zum übergeordneten Element zurück.
Aber tatsächlich haben wir während der Verwendung festgestellt, dass der von .position() zurückgegebene Wert häufig 0 ist. Aber die Tatsache ist nicht 0. Besonders im Google Chrome- und IE-Browser. Firefox hat dieses Problem nicht.
Der Grund dafür ist, dass der Browser bei Webkit-basierten Browsern (Google Chrome und Safari-Browser) nur dann auf die Höhe und Breite dieser Elemente zugreifen kann, wenn Elemente (Bilder, Flash usw.) vollständig geladen sind. Firefox kann auf diese Eigenschaften zugreifen, nachdem das DOM geladen wurde, und muss nicht die volle Größe des Elements kennen. Nicht so bei Google Chrome. Wenn Sie daher in Browsern wie Google/IE .position() verwenden möchten, um den Offset eines Elements abzurufen, erhalten Sie häufig den Anfangswert: 0.
Eine Abhilfe besteht darin, Ihren .position()-Aufruf nach der Auslösung des $(window).load()-Ereignisses zu platzieren, und nicht nach dem $(document).ready-Ereignis. Diese Methode ist jedoch möglicherweise nicht zuverlässig.
Eine andere Alternative ist die Verwendung von .offset() zum Konvertieren von:
parentLeft = thisParent.offset().left;
parentTop = thisParent.offset().top;
zurück {
left: thisLeft-parentLeft,
top: thisTop-parentTop
};
};