Ticket #4705: jquery-1.3.2-className.patch
File jquery-1.3.2-className.patch, 3.0 KB (added by , 14 years ago) |
---|
-
jquery-1.3.
old new 707 707 }, 708 708 709 709 className: { 710 711 get: function( elem ) { 712 //var classNames = elem.className.baseVal || elem.className || elem.getAttribute("class"); 713 var classNames = elem.getAttribute("class"); 714 classNames = classNames ? classNames : ""; 715 return classNames 716 }, 717 718 set: function( elem, value ) { 719 elem.setAttribute("class", value); 720 }, 721 722 710 723 // internal only, use addClass("class") 711 724 add: function( elem, classNames ) { 712 725 jQuery.each((classNames || "").split(/\s+/), function(i, className){ 713 if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) 714 elem.className += (elem.className ? " " : "") + className; 726 var curClassName = jQuery.className.get(elem); 727 if ( elem.nodeType == 1 && !jQuery.className.has( curClassName, className ) ) 728 jQuery.className.set(elem, curClassName + (curClassName ? " " : "") + className); 715 729 }); 716 730 }, 717 731 718 732 // internal only, use removeClass("class") 719 733 remove: function( elem, classNames ) { 720 734 if (elem.nodeType == 1) 721 elem.className =classNames !== undefined ?722 jQuery.grep( elem.className.split(/\s+/), function(className){735 jQuery.className.set(elem, classNames !== undefined ? 736 jQuery.grep(jQuery.className.get(elem).split(/\s+/), function(className){ 723 737 return !jQuery.className.has( classNames, className ); 724 738 }).join(" ") : 725 ""; 739 "" 740 ); 726 741 }, 727 742 728 743 // internal only, use hasClass("class") 729 744 has: function( elem, className ) { 730 return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; 745 var classNames = ""; 746 if (elem) 747 { 748 if (elem.getAttribute) 749 { 750 classNames = elem.jQuery.className.get(elem); 751 } 752 else 753 { 754 classNames = elem; // <-- ??? 755 } 756 } 757 return elem && jQuery.inArray( className, classNames.toString().split(/\s+/) ) > -1; 731 758 } 732 759 }, 733 760 … … 1779 1806 1780 1807 for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { 1781 1808 if ( elem ) { 1782 if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) { 1809 var className = jQuery.className.get(elem); 1810 if ( not ^ (className && (" " + className + " ").indexOf(match) >= 0) ) { 1783 1811 if ( !inplace ) 1784 1812 result.push( elem ); 1785 1813 } else if ( inplace ) { … … 2005 2033 return (match === "*" && elem.nodeType === 1) || elem.nodeName === match; 2006 2034 }, 2007 2035 CLASS: function(elem, match){ 2008 return (" " + (elem.className || elem.getAttribute("class")) + " ") 2036 var className = jQuery.className.get(elem); 2037 return (" " + (className) + " ") 2009 2038 .indexOf( match ) > -1; 2010 2039 }, 2011 2040 ATTR: function(elem, match){ … … 2207 2236 if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { 2208 2237 return; 2209 2238 } 2210 2239 2211 2240 Sizzle = function(query, context, extra, seed){ 2212 2241 context = context || document; 2213 2242