]> source.dussan.org Git - jquery.git/commitdiff
Offset: simplify jQuery#offsetParent method
authorOleg Gaidarenko <markelog@gmail.com>
Tue, 13 Jan 2015 05:12:14 +0000 (08:12 +0300)
committerOleg Gaidarenko <markelog@gmail.com>
Tue, 13 Jan 2015 05:12:51 +0000 (08:12 +0300)
* It seems, check for html element (and previously for body element)
  was redundant

* Simplify "return" statement

* Add comment about potential errors that didn't find themselves
  in real life app

Closes gh-1968

src/offset.js

index e7cb23929822453383b607185932ba90d6a853a9..a0d3ab5fb5b27128873a5481cff8891cd6bb41a0 100644 (file)
@@ -143,12 +143,21 @@ jQuery.fn.extend({
                };
        },
 
+       // This method will return documentElement in the following cases:
+       // 1) For the element inside the iframe without offsetParent, this method will return
+       //    documentElement of the parent window
+       // 2) For the hidden or detached element
+       // 3) For body or html element, i.e. in case of the html node - it will return itself
+       //
+       // but those exceptions were never presented as a real life use-cases
+       // and might be considered as more preferable results.
+       //
+       // This logic, however, is not guaranteed and can change at any point in the future
        offsetParent: function() {
                return this.map(function() {
-                       var offsetParent = this.offsetParent || documentElement;
+                       var offsetParent = this.offsetParent;
 
-                       while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) &&
-                               jQuery.css( offsetParent, "position" ) === "static" ) ) {
+                       while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
                                offsetParent = offsetParent.offsetParent;
                        }