nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / jquery / src / core / access.js
1 define( [
2         "../core"
3 ], function( jQuery ) {
4
5 // Multifunctional method to get and set values of a collection
6 // The value/s can optionally be executed if it's a function
7 var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
8         var i = 0,
9                 len = elems.length,
10                 bulk = key == null;
11
12         // Sets many values
13         if ( jQuery.type( key ) === "object" ) {
14                 chainable = true;
15                 for ( i in key ) {
16                         access( elems, fn, i, key[ i ], true, emptyGet, raw );
17                 }
18
19         // Sets one value
20         } else if ( value !== undefined ) {
21                 chainable = true;
22
23                 if ( !jQuery.isFunction( value ) ) {
24                         raw = true;
25                 }
26
27                 if ( bulk ) {
28
29                         // Bulk operations run against the entire set
30                         if ( raw ) {
31                                 fn.call( elems, value );
32                                 fn = null;
33
34                         // ...except when executing function values
35                         } else {
36                                 bulk = fn;
37                                 fn = function( elem, key, value ) {
38                                         return bulk.call( jQuery( elem ), value );
39                                 };
40                         }
41                 }
42
43                 if ( fn ) {
44                         for ( ; i < len; i++ ) {
45                                 fn(
46                                         elems[ i ], key, raw ?
47                                         value :
48                                         value.call( elems[ i ], i, fn( elems[ i ], key ) )
49                                 );
50                         }
51                 }
52         }
53
54         return chainable ?
55                 elems :
56
57                 // Gets
58                 bulk ?
59                         fn.call( elems ) :
60                         len ? fn( elems[ 0 ], key ) : emptyGet;
61 };
62
63 return access;
64
65 } );