silverstripe-framework/thirdparty/jquery-effen/jquery.fn.js
Ingo Schommer acf50807e4 MINOR Moved jsparty/jquery/plugins/effen to sapphire/thirdparty/jquery-effen
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@93549 467b73ca-7a2a-4603-9d3b-597d59a354a9
2011-02-02 14:17:48 +13:00

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);