Skip to content

Commit de07ebc

Browse files
committed
fix for jquery#4512 and minor sizzle updates
1 parent c6b9654 commit de07ebc

1 file changed

Lines changed: 10 additions & 14 deletions

File tree

src/selector.js

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ var Expr = Sizzle.selectors = {
551551
} else if ( name === "not" ) {
552552
var not = match[3];
553553

554-
for ( i = 0, l = not.length; i < l; i++ ) {
554+
for ( var i = 0, l = not.length; i < l; i++ ) {
555555
if ( not[i] === elem ) {
556556
return false;
557557
}
@@ -565,13 +565,13 @@ var Expr = Sizzle.selectors = {
565565
switch (type) {
566566
case 'only':
567567
case 'first':
568-
while ( (node = node.previousSibling) ) {
568+
while (node = node.previousSibling) {
569569
if ( node.nodeType === 1 ) return false;
570570
}
571571
if ( type == 'first') return true;
572572
node = elem;
573573
case 'last':
574-
while ( (node = node.nextSibling) ) {
574+
while (node = node.nextSibling) {
575575
if ( node.nodeType === 1 ) return false;
576576
}
577577
return true;
@@ -977,21 +977,17 @@ jQuery.expr = Sizzle.selectors;
977977
jQuery.expr[":"] = jQuery.expr.filters;
978978

979979
Sizzle.selectors.filters.hidden = function(elem){
980-
var width = elem.offsetWidth, height = elem.offsetHeight;
981-
return ( width === 0 && height === 0 ) ?
980+
var width = elem.offsetWidth, height = elem.offsetHeight,
981+
force = /^tr$/i.test( elem.tagName ); // ticket #4512
982+
return ( width === 0 && height === 0 && !force ) ?
982983
true :
983-
( width !== 0 && height !== 0 ) ?
984-
false :
985-
!!( jQuery.curCSS(elem, "display") === "none" );
984+
( width !== 0 && height !== 0 && !force ) ?
985+
false :
986+
!!( jQuery.curCSS(elem, "display") === "none" );
986987
};
987988

988989
Sizzle.selectors.filters.visible = function(elem){
989-
var width = elem.offsetWidth, height = elem.offsetHeight;
990-
return ( width === 0 && height === 0 ) ?
991-
false :
992-
( width > 0 && height > 0 ) ?
993-
true :
994-
!!( jQuery.curCSS(elem, "display") !== "none" );
990+
return !Sizzle.selectors.filters.hidden(elem);
995991
};
996992

997993
Sizzle.selectors.filters.animated = function(elem){

0 commit comments

Comments
 (0)