Bug Tracker

Ticket #4994: jquery4994.patch

File jquery4994.patch, 2.2 KB (added by nbubna, 11 years ago)

Suggested implementation

  • src/ajax.js

     
    4646                // Request the remote document
    4747                jQuery.ajax({
    4848                        url: url,
     49                        target: self,
    4950                        type: type,
    5051                        dataType: "html",
    5152                        data: params,
     
    264265
    265266                // Watch for a new set of requests
    266267                if ( s.global && ! jQuery.active++ ) {
    267                         jQuery.event.trigger( "ajaxStart" );
     268                        trigger( "ajaxStart" );
    268269                }
    269270
    270271                // Matches an absolute URL, and saves the domain
     
    355356                if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
    356357                        // Handle the global AJAX counter
    357358                        if ( s.global && ! --jQuery.active ) {
    358                                 jQuery.event.trigger( "ajaxStop" );
     359                                trigger( "ajaxStop" );
    359360                        }
    360361
    361362                        // close opended socket
     
    364365                }
    365366
    366367                if ( s.global ) {
    367                         jQuery.event.trigger("ajaxSend", [xhr, s]);
     368                        trigger("ajaxSend", [xhr, s]);
    368369                }
    369370
    370371                // Wait for a response to come back
     
    378379
    379380                                        // Handle the global AJAX counter
    380381                                        if ( s.global && ! --jQuery.active ) {
    381                                                 jQuery.event.trigger( "ajaxStop" );
     382                                                trigger( "ajaxStop" );
    382383                                        }
    383384                                }
    384385
     
    461462                        onreadystatechange();
    462463                }
    463464
     465                function trigger(event, data) {
     466                        // if a target element was specified, trigger on that
     467                        if ( s.target ) {
     468                                $(s.target).trigger(event, data);
     469                        } else {
     470                                jQuery.event.trigger(event, data);
     471                        }
     472                }
     473
    464474                function success(){
    465475                        // If a local callback was specified, fire it and pass it the data
    466476                        if ( s.success ) {
     
    469479
    470480                        // Fire the global callback
    471481                        if ( s.global ) {
    472                                 jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
     482                                trigger( "ajaxSuccess", [xhr, s] );
    473483                        }
    474484                }
    475485
     
    481491
    482492                        // The request was completed
    483493                        if ( s.global ) {
    484                                 jQuery.event.trigger( "ajaxComplete", [xhr, s] );
     494                                trigger( "ajaxComplete", [xhr, s] );
    485495                        }
    486496
    487497                        // Handle the global AJAX counter
    488498                        if ( s.global && ! --jQuery.active ) {
    489                                 jQuery.event.trigger( "ajaxStop" );
     499                                trigger( "ajaxStop" );
    490500                        }
    491501                }
    492502
     
    502512
    503513                // Fire the global callback
    504514                if ( s.global ) {
    505                         jQuery.event.trigger( "ajaxError", [xhr, s, e] );
     515                        trigger( "ajaxError", [xhr, s, e] );
    506516                }
    507517        },
    508518