mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-08-30 14:36:06 +02:00
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@93549 467b73ca-7a2a-4603-9d3b-597d59a354a9
31 lines
798 B
JavaScript
31 lines
798 B
JavaScript
(function($) {
|
|
$.fn.fn = function() {
|
|
var self = this;
|
|
var extension = arguments[0], name = arguments[0];
|
|
if (typeof name == "string") {
|
|
return apply(self, name, $.makeArray(arguments).slice(1, arguments.length));
|
|
} else {
|
|
$.each(extension, function(key, value) {
|
|
define(self, key, value);
|
|
});
|
|
return self;
|
|
}
|
|
}
|
|
function define(self, name, fn) {
|
|
self.data(namespacedName(name), fn);
|
|
};
|
|
function apply(self, name, args) {
|
|
var result;
|
|
self.each(function(i, item) {
|
|
var fn = $(item).data(namespacedName(name));
|
|
if (fn)
|
|
result = fn.apply(item, args);
|
|
else
|
|
throw(name + " is not defined");
|
|
});
|
|
return result;
|
|
};
|
|
function namespacedName(name) {
|
|
return 'fn.' + name;
|
|
}
|
|
})(jQuery); |