Bug Tracker

Ticket #4705: jquery-1.3.2-className.patch

File jquery-1.3.2-className.patch, 3.0 KB (added by dhbaird, 13 years ago)
  • jquery-1.3.

    old new  
    707707        },
    708708
    709709        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
    710723                // internal only, use addClass("class")
    711724                add: function( elem, classNames ) {
    712725                        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);
    715729                        });
    716730                },
    717731
    718732                // internal only, use removeClass("class")
    719733                remove: function( elem, classNames ) {
    720734                        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){
    723737                                                return !jQuery.className.has( classNames, className );
    724738                                        }).join(" ") :
    725                                         "";
     739                                        ""
     740                                );
    726741                },
    727742
    728743                // internal only, use hasClass("class")
    729744                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;
    731758                }
    732759        },
    733760
     
    17791806
    17801807                        for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
    17811808                                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) ) {
    17831811                                                if ( !inplace )
    17841812                                                        result.push( elem );
    17851813                                        } else if ( inplace ) {
     
    20052033                        return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
    20062034                },
    20072035                CLASS: function(elem, match){
    2008                         return (" " + (elem.className || elem.getAttribute("class")) + " ")
     2036                        var className = jQuery.className.get(elem);
     2037                        return (" " + (className) + " ")
    20092038                                .indexOf( match ) > -1;
    20102039                },
    20112040                ATTR: function(elem, match){
     
    22072236        if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
    22082237                return;
    22092238        }
    2210        
     2239
    22112240        Sizzle = function(query, context, extra, seed){
    22122241                context = context || document;
    22132242