Side navigation
#14841 closed feature (plugin)
Opened March 03, 2014 06:24PM UTC
Closed March 03, 2014 07:09PM UTC
Allow `each` to accept optional context parameter
| Reported by: | isochronous | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | None |
| Component: | unfiled | Version: | 1.11.0-rc1 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
First off, I know that there are several ways of accomplishing this already: closures, function.bind, $.proxy, var $self = this, etc. This would merely be a convenience method for a situation I find myself dealing with often.
Essentially, .each should accept an optional third parameter that specifies the context on which the callback method should execute.
#!js
each: function( callback, args, context ) {
return jQuery.each( this, callback, args );
},
/* snip */
each: function( obj, callback, args, ctx ) {
var value,
i = 0,
length = obj.length,
isArray = isArraylike( obj );
if ( args ) {
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback.apply( ctx || obj[ i ], args );
if ( value === false ) {
break;
}
}
} else {
for ( i in obj ) {
value = callback.apply( ctx || obj[ i ], args );
if ( value === false ) {
break;
}
}
}
// A special, fast, case for the most common use of each
} else {
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback.call( ctx || obj[ i ], i, obj[ i ] );
if ( value === false ) {
break;
}
}
} else {
for ( i in obj ) {
value = callback.call( ctx || obj[ i ], i, obj[ i ] );
if ( value === false ) {
break;
}
}
}
}
return obj;
},
Attachments (0)
Change History (1)
Changed March 03, 2014 07:09PM UTC by comment:1
| resolution: | → plugin |
|---|---|
| status: | new → closed |
A feature like this isn't required by our internal uses, and as you say there are plenty of ways to accomplish this already. We don't tend to embellish our well-established utility methods at this point. You could always do this with a plugin.