]> source.dussan.org Git - jquery.git/commitdiff
Ajax: Deprecate AJAX event aliases, inline event/alias into deprecated
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Tue, 21 Jan 2020 13:12:35 +0000 (14:12 +0100)
committerMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Tue, 21 Jan 2020 13:26:35 +0000 (14:26 +0100)
A new `src/deprecated` directory makes it possible to exclude some deprecated
APIs from a custom build when their respective "parent" module is excluded
without keeping that module outside of the `src/deprecated` directory or
the `src/deprecated.js` file.

Closes gh-4572

(cherry picked from 23d53928f383b0e7440bf4b08b7524e6af232fad)

Gruntfile.js
README.md
src/deprecated.js
src/deprecated/ajax-event-alias.js [new file with mode: 0644]
src/deprecated/event.js [new file with mode: 0644]
src/event/ajax.js [deleted file]
src/event/alias.js [deleted file]
src/jquery.js

index af76ce3378412c5890acb15c11f171184e86a6e2..f3786d4eb85678a9bb4ba4077c3ef05f7af3e2d9 100644 (file)
@@ -58,7 +58,7 @@ module.exports = function( grunt ) {
 
                                // Exclude specified modules if the module matching the key is removed
                                removeWith: {
-                                       ajax: [ "manipulation/_evalUrl", "event/ajax" ],
+                                       ajax: [ "manipulation/_evalUrl", "deprecated/ajax-event-alias" ],
                                        callbacks: [ "deferred" ],
                                        css: [ "effects", "dimensions", "offset" ],
                                        "css/showHide": [ "effects" ],
@@ -66,6 +66,7 @@ module.exports = function( grunt ) {
                                                remove: [ "ajax", "effects", "queue", "core/ready" ],
                                                include: [ "core/ready-no-deferred" ]
                                        },
+                                       event: [ "deprecated/ajax-event-alias", "deprecated/event" ],
                                        sizzle: [ "css/hiddenVisibleSelectors", "effects/animatedSelector" ]
                                }
                        }
index 531efc16faa0954fb67e991fa89f1e93f8caf770..fd6630eaa3efbe95d930334fdcf465e70a29cf4f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -90,10 +90,9 @@ Some example modules that can be excluded are:
 - **deprecated**: Methods documented as deprecated but not yet removed.
 - **dimensions**: The `.width()` and `.height()` methods, including `inner-` and `outer-` variations.
 - **effects**: The `.animate()` method and its shorthands such as `.slideUp()` or `.hide("slow")`.
-- **event**: The `.on()` and `.off()` methods and all event functionality. Also removes `event/alias`.
-- **event/alias**: All event attaching/triggering shorthands like `.click()` or `.mouseover()`.
+- **event**: The `.on()` and `.off()` methods and all event functionality.
 - **event/focusin**: Cross-browser support for the focusin and focusout events.
-- **event/trigger**: The `.trigger()` and `.triggerHandler()` methods. Used by **alias** and **focusin** modules.
+- **event/trigger**: The `.trigger()` and `.triggerHandler()` methods.
 - **offset**: The `.offset()`, `.position()`, `.offsetParent()`, `.scrollLeft()`, and `.scrollTop()` methods.
 - **wrap**: The `.wrap()`, `.wrapAll()`, `.wrapInner()`, and `.unwrap()` methods.
 - **core/ready**: Exclude the ready module if you place your scripts at the end of the body. Any ready callbacks bound with `jQuery()` will simply be called immediately. However, `jQuery(document).ready()` will not be a function and `.on("ready", ...)` or similar will not be triggered.
@@ -154,7 +153,7 @@ grunt custom:-css
 Exclude a bunch of modules:
 
 ```bash
-grunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-event/alias,-offset,-wrap
+grunt custom:-ajax/jsonp,-css,-deprecated,-dimensions,-effects,-offset,-wrap
 ```
 
 There is also a special alias to generate a build with the same configuration as the official jQuery Slim build is generated:
index 141f9946248e27772e4010acb53666710f6e22f9..cc13c3c825dd91d1430fa757e0c27ab99342b7b1 100644 (file)
@@ -7,7 +7,8 @@ define( [
        "./var/isWindow",
        "./var/slice",
 
-       "./event/alias"
+       "./deprecated/ajax-event-alias",
+       "./deprecated/event"
 ], function( jQuery, nodeName, camelCase, toType, isFunction, isWindow, slice ) {
 
 "use strict";
@@ -16,27 +17,6 @@ define( [
 // Make sure we trim BOM and NBSP
 var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
 
-jQuery.fn.extend( {
-
-       bind: function( types, data, fn ) {
-               return this.on( types, null, data, fn );
-       },
-       unbind: function( types, fn ) {
-               return this.off( types, null, fn );
-       },
-
-       delegate: function( selector, types, data, fn ) {
-               return this.on( types, selector, data, fn );
-       },
-       undelegate: function( selector, types, fn ) {
-
-               // ( namespace ) or ( selector, types [, fn] )
-               return arguments.length === 1 ?
-                       this.off( selector, "**" ) :
-                       this.off( types, selector || "**", fn );
-       }
-} );
-
 // Bind a function to a context, optionally partially applying any
 // arguments.
 // jQuery.proxy is deprecated to promote standards (specifically Function#bind)
diff --git a/src/deprecated/ajax-event-alias.js b/src/deprecated/ajax-event-alias.js
new file mode 100644 (file)
index 0000000..b96c0aa
--- /dev/null
@@ -0,0 +1,22 @@
+define( [
+       "../core",
+       "../ajax",
+       "../event"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.each( [
+       "ajaxStart",
+       "ajaxStop",
+       "ajaxComplete",
+       "ajaxError",
+       "ajaxSuccess",
+       "ajaxSend"
+], function( _i, type ) {
+       jQuery.fn[ type ] = function( fn ) {
+               return this.on( type, fn );
+       };
+} );
+
+} );
diff --git a/src/deprecated/event.js b/src/deprecated/event.js
new file mode 100644 (file)
index 0000000..d2d26bc
--- /dev/null
@@ -0,0 +1,48 @@
+define( [
+       "../core",
+
+       "../event",
+       "../event/trigger"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.fn.extend( {
+
+       bind: function( types, data, fn ) {
+               return this.on( types, null, data, fn );
+       },
+       unbind: function( types, fn ) {
+               return this.off( types, null, fn );
+       },
+
+       delegate: function( selector, types, data, fn ) {
+               return this.on( types, selector, data, fn );
+       },
+       undelegate: function( selector, types, fn ) {
+
+               // ( namespace ) or ( selector, types [, fn] )
+               return arguments.length === 1 ?
+                       this.off( selector, "**" ) :
+                       this.off( types, selector || "**", fn );
+       },
+
+       hover: function( fnOver, fnOut ) {
+               return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+       }
+} );
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+       "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+       "change select submit keydown keypress keyup contextmenu" ).split( " " ),
+       function( _i, name ) {
+
+               // Handle event binding
+               jQuery.fn[ name ] = function( data, fn ) {
+                       return arguments.length > 0 ?
+                               this.on( name, null, data, fn ) :
+                               this.trigger( name );
+               };
+       } );
+
+} );
diff --git a/src/event/ajax.js b/src/event/ajax.js
deleted file mode 100644 (file)
index dd9c0ff..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-define( [
-       "../core",
-       "../event"
-], function( jQuery ) {
-
-"use strict";
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [
-       "ajaxStart",
-       "ajaxStop",
-       "ajaxComplete",
-       "ajaxError",
-       "ajaxSuccess",
-       "ajaxSend"
-], function( _i, type ) {
-       jQuery.fn[ type ] = function( fn ) {
-               return this.on( type, fn );
-       };
-} );
-
-} );
diff --git a/src/event/alias.js b/src/event/alias.js
deleted file mode 100644 (file)
index 46bd1ae..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-define( [
-       "../core",
-
-       "../event",
-       "./trigger"
-], function( jQuery ) {
-
-"use strict";
-
-jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
-       "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-       "change select submit keydown keypress keyup contextmenu" ).split( " " ),
-       function( _i, name ) {
-
-       // Handle event binding
-       jQuery.fn[ name ] = function( data, fn ) {
-               return arguments.length > 0 ?
-                       this.on( name, null, data, fn ) :
-                       this.trigger( name );
-       };
-} );
-
-jQuery.fn.extend( {
-       hover: function( fnOver, fnOut ) {
-               return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-       }
-} );
-
-} );
index 0e026a6c1c7ac4c15d8cb02a75b698677e927ef2..61c4b2f0ddbd8bc7dab1b11d912ce50cd7cc9846 100644 (file)
@@ -23,7 +23,6 @@ define( [
        "./ajax/script",
        "./ajax/jsonp",
        "./ajax/load",
-       "./event/ajax",
        "./effects",
        "./effects/animatedSelector",
        "./offset",