Bug Tracker

Ticket #1698: jquery.patch

File jquery.patch, 1.4 kB (added by diz, 1 year ago)

Patch

  • .js

    old new  
    399399 
    400400            jQuery.each( a, function(){ 
    401401                var elem = clone ? this.cloneNode(true) : this; 
    402                 if ( !evalScript(0, elem) ) 
    403                     fn.call( obj, elem ); 
     402                 
     403                var script = extractScript(-1, elem); 
     404                fn.call( obj, elem ); 
     405                if (script !== false) 
     406                    evalScript(script); 
    404407            }); 
    405408        }); 
    406409    } 
    407410}; 
    408411 
    409 function evalScript(i, elem){ 
    410     var script = jQuery.nodeName(elem, "script"); 
    411  
    412     if ( script ) { 
    413         if ( elem.src ) 
    414             jQuery.ajax({ url: elem.src, async: false, dataType: "script" }); 
    415         else 
    416             jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); 
    417      
     412function extractScript(i, elem) { 
     413    if ( jQuery.nodeName(elem, "script") ) { 
    418414        if ( elem.parentNode ) 
    419415            elem.parentNode.removeChild(elem); 
    420  
     416         
     417        // Don't need to return a jQuery object if it was a recursive call 
     418        if (i == -1) 
     419            return jQuery(elem); 
     420        else 
     421            return; 
     422     
    421423    } else if ( elem.nodeType == 1 ) 
    422     jQuery("script", elem).each(evalScript); 
     424        return jQuery("script", elem).each(extractScript); 
     425     
     426    return false; 
     427} 
    423428 
    424     return script; 
     429function evalScript(script) { 
     430    script.each(function() { 
     431        if ( this.src ) 
     432            jQuery.ajax({ url: this.src, async: false, dataType: "script" }); 
     433        else 
     434            jQuery.globalEval( this.text || this.textContent || this.innerHTML || "" ); 
     435    }); 
    425436} 
    426437 
    427438jQuery.extend = jQuery.fn.extend = function() {