इस हालांकि पर उदाहरण के कार्य प्रासंगिक जवाब नहीं हो सकता है, लेकिन सवाल के बाद से कैसे प्रत्येक समारोह jQuery के लिए पैरामीटर पारित करने के लिए है।
प्रथम कार्य: का प्रयोग आंशिक समारोह - more on this और closure library
jsfiddle से:
var param = 'extra-param';
var partial = function(fn, var_args) {
var args = Array.prototype.slice.call(arguments, 1);
return function() {
// Clone the array (with slice()) and append additional arguments
// to the existing arguments.
var newArgs = args.slice();
newArgs.push.apply(newArgs, arguments);
return fn.apply(this, newArgs);
};
};
$(['joe','james','rick','kirk']).each(partial (function (index,value) {
alert(arguments.length);
alert(arguments[0]);
},param));
द्वितीय कार्य
$ .प्रत्येक समारोह ले जा सकते हैं या तो 2 पैरामीटर Index
और Element
या (जो भी रूप में this
भेजा जा सकता है) यदि आप Index
की जरूरत नहीं है तो आप Array
$ .प्रत्येक और तत्व को तर्क यह
चेतावनी के रूप में संदर्भित कर सकते हैं पारित कर सकते हैं: आर्ग केवल आंतरिक उपयोग के लिए है - द्वारा jQuery
// Execute a callback for every element in the matched set.
// (You can seed the arguments with an array of args, but this is
// only used internally.)
each: function(callback, args) {
return jQuery.each(this, callback, args);
},
कौन सा each: function(obj, callback, args)
फोन करेगा तो callback.apply(obj[ i ], args);
फोन अगर आप तर्क अन्य संगठनों के रूप में सरणी पारित erwise callback.call(obj[ i ], i, obj[ i ])
;
लागू करते हैं और कहते हैं
नमूना कोड का अंतर कृपया ध्यान दें: http://jsfiddle.net/dekajp/yA89R/1/
var param = 'rick';
$(['joe','james','rick','kirk']).each(function (arg1 , arg2 ,arg3) {
//alert('[this: '+this +'] [arg1: '+ arg1 +'] [arg2:'+arg2+'] [param:'+param+']');
},['hello 1','hello 2','hello 3']);
संदर्भ jQuery के लिए प्रत्येक कोड संस्करण 1,9
// args is for internal usage only
each: function(obj, callback, args) {
var value,
i = 0,
length = obj.length,
isArray = isArraylike(obj);
if (args) {
if (isArray) {
for (; i < length; i++) {
value = callback.apply(obj[ i ], args);
if (value === false) {
break;
}
}
} else {
for (i in obj) {
value = callback.apply(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(obj[ i ], i, obj[ i ]);
if (value === false) {
break;
}
}
} else {
for (i in obj) {
value = callback.call(obj[ i ], i, obj[ i ]);
if (value === false) {
break;
}
}
}
}
return obj;
},
धन्यवाद! [Jsfiddle.net] के लिए +1 (http://www.jsfiddle.net) – MarioVW