aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Schmitz <arschmitz@gmail.com>2015-07-15 18:14:26 -0400
committerAlexander Schmitz <arschmitz@gmail.com>2015-08-08 00:29:36 -0400
commit2c92f1074718ee23081765da0b86a8e3fe906874 (patch)
tree07c2ec6c1b20f138bb70df073cfb66eeb67cf486
parentbddb7efe000cf60e455d48f28acef0ef2f295d9d (diff)
downloadjquery-ui-2c92f1074718ee23081765da0b86a8e3fe906874.tar.gz
jquery-ui-2c92f1074718ee23081765da0b86a8e3fe906874.zip
Core: Move labels into its own module
Ref #9647
-rw-r--r--tests/unit/core/core.js3
-rw-r--r--ui/button.js2
-rw-r--r--ui/core.js37
-rw-r--r--ui/labels.js62
-rw-r--r--ui/selectmenu.js5
5 files changed, 70 insertions, 39 deletions
diff --git a/tests/unit/core/core.js b/tests/unit/core/core.js
index 0d25e22d8..1eaa055e5 100644
--- a/tests/unit/core/core.js
+++ b/tests/unit/core/core.js
@@ -2,7 +2,8 @@ define( [
"jquery",
"lib/common",
"ui/core",
- "ui/form"
+ "ui/form",
+ "ui/labels"
], function( $, common ) {
module( "core - jQuery extensions" );
diff --git a/ui/button.js b/ui/button.js
index ec6525d2b..bc391810f 100644
--- a/ui/button.js
+++ b/ui/button.js
@@ -22,9 +22,9 @@
// AMD. Register as an anonymous module.
define([
"jquery",
- "./core",
"./data",
"./keycode",
+ "./labels",
"./version",
"./widget"
], factory );
diff --git a/ui/core.js b/ui/core.js
index 6c948d058..412354151 100644
--- a/ui/core.js
+++ b/ui/core.js
@@ -22,11 +22,11 @@
"jquery",
"./data",
"./disable-selection",
- "./escape-selector",
"./focusable",
"./form",
"./ie",
"./keycode",
+ "./labels",
"./version"
], factory );
} else {
@@ -113,41 +113,6 @@ $.fn.extend( {
$( this ).removeAttr( "id" );
}
} );
- },
-
- labels: function() {
- var ancestor, selector, id, labels, ancestors;
-
- // Check control.labels first
- if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
- return this.pushStack( this[ 0 ].labels );
- }
-
- // Support: IE <= 11, FF <= 37, Android <= 2.3 only
- // Above browsers do not support control.labels. Everything below is to support them
- // as well as document fragments. control.labels does not work on document fragments
- labels = this.eq( 0 ).parents( "label" );
-
- // Look for the label based on the id
- id = this.attr( "id" );
- if ( id ) {
-
- // We don't search against the document in case the element
- // is disconnected from the DOM
- ancestor = this.eq( 0 ).parents().last();
-
- // Get a full set of top level ancestors
- ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
-
- // Create a selector for the label based on the id
- selector = "label[for='" + $.ui.escapeSelector( id ) + "']";
-
- labels = labels.add( ancestors.find( selector ).addBack( selector ) );
-
- }
-
- // Return whatever we have found for labels
- return this.pushStack( labels );
}
} );
diff --git a/ui/labels.js b/ui/labels.js
new file mode 100644
index 000000000..2a78d886b
--- /dev/null
+++ b/ui/labels.js
@@ -0,0 +1,62 @@
+/*!
+ * jQuery UI Labels @VERSION
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: labels
+//>>group: Core
+//>>description: Find all the labels associated with a given input
+//>>docs: http://api.jqueryui.com/labels/
+
+( function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+
+ // AMD. Register as an anonymous module.
+ define( [ "jquery", "./version", "./escape-selector" ], factory );
+ } else {
+
+ // Browser globals
+ factory( jQuery );
+ }
+} ( function( $ ) {
+
+return $.fn.labels = function() {
+ var ancestor, selector, id, labels, ancestors;
+
+ // Check control.labels first
+ if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
+ return this.pushStack( this[ 0 ].labels );
+ }
+
+ // Support: IE <= 11, FF <= 37, Android <= 2.3 only
+ // Above browsers do not support control.labels. Everything below is to support them
+ // as well as document fragments. control.labels does not work on document fragments
+ labels = this.eq( 0 ).parents( "label" );
+
+ // Look for the label based on the id
+ id = this.attr( "id" );
+ if ( id ) {
+
+ // We don't search against the document in case the element
+ // is disconnected from the DOM
+ ancestor = this.eq( 0 ).parents().last();
+
+ // Get a full set of top level ancestors
+ ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
+
+ // Create a selector for the label based on the id
+ selector = "label[for='" + $.ui.escapeSelector( id ) + "']";
+
+ labels = labels.add( ancestors.find( selector ).addBack( selector ) );
+
+ }
+
+ // Return whatever we have found for labels
+ return this.pushStack( labels );
+};
+
+} ) );
diff --git a/ui/selectmenu.js b/ui/selectmenu.js
index dc8df9f1b..04808a87d 100644
--- a/ui/selectmenu.js
+++ b/ui/selectmenu.js
@@ -26,9 +26,12 @@
"./version",
"./escape-selector",
"./menu",
+ "./keycode",
+ "./labels",
"./position",
"./version",
- "./widget" ], factory );
+ "./widget"
+ ], factory );
} else {
// Browser globals