Primer commit del sistema avantika sin cambios
This commit is contained in:
48
javascript/sorter/fabtabulous.js
Executable file
48
javascript/sorter/fabtabulous.js
Executable file
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Fabtabulous! Simple tabs using Prototype
|
||||
* http://tetlaw.id.au/view/blog/fabtabulous-simple-tabs-using-prototype/
|
||||
* Andrew Tetlaw
|
||||
* version 1.1 2006-05-06
|
||||
* http://creativecommons.org/licenses/by-sa/2.5/
|
||||
*/
|
||||
var Fabtabs = Class.create();
|
||||
|
||||
Fabtabs.prototype = {
|
||||
initialize : function(element) {
|
||||
this.element = $(element);
|
||||
var options = Object.extend({}, arguments[1] || {});
|
||||
this.menu = $A(this.element.getElementsByTagName('a'));
|
||||
this.show(this.getInitialTab());
|
||||
this.menu.each(this.setupTab.bind(this));
|
||||
},
|
||||
setupTab : function(elm) {
|
||||
Event.observe(elm,'click',this.activate.bindAsEventListener(this),false)
|
||||
},
|
||||
activate : function(ev) {
|
||||
var elm = Event.findElement(ev, "a");
|
||||
Event.stop(ev);
|
||||
this.show(elm);
|
||||
this.menu.without(elm).each(this.hide.bind(this));
|
||||
},
|
||||
hide : function(elm) {
|
||||
$(elm).removeClassName('active-tab');
|
||||
$(this.tabID(elm)).removeClassName('active-tab-body');
|
||||
},
|
||||
show : function(elm) {
|
||||
$(elm).addClassName('active-tab');
|
||||
$(this.tabID(elm)).addClassName('active-tab-body');
|
||||
|
||||
},
|
||||
tabID : function(elm) {
|
||||
return elm.href.match(/#(\w.+)/)[1];
|
||||
},
|
||||
getInitialTab : function() {
|
||||
if(document.location.href.match(/#(\w.+)/)) {
|
||||
var loc = RegExp.$1;
|
||||
var elm = this.menu.find(function(value) { return value.href.match(/#(\w.+)/)[1] == loc; });
|
||||
return elm || this.menu.first();
|
||||
} else {
|
||||
return this.menu.first();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user