123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /**
- * aui-tab.js
- * @author 流浪男
- * @todo more things to abstract, e.g. Loading css etc.
- * Licensed under the MIT license.
- * http://www.opensource.org/licenses/mit-license.php
- */
- (function( window, undefined ) {
- "use strict";
- var auiTab = function(params,callback) {
- this.extend(this.params, params);
- this._init(callback);
- };
- var tabItems;
- auiTab.prototype = {
- params: {
- element: false,
- index: 1, //默认选中
- repeatClick: false //是否允许重复点击
- },
- _init: function(callback) {
- var self = this;
- if(!self.params.element || self.params.element.nodeType!=1){
- return;
- }
- tabItems = self.params.element.children;
- if(tabItems){
- self.setActive();
- for(var i=0; i<tabItems.length; i++){
- tabItems[i].setAttribute("tapmode","");
- tabItems[i].setAttribute("data-item-order",i);
- tabItems[i].onclick = function(e){
- if(!self.params.repeatClick){
- if(this.className.indexOf("aui-active") > -1)return;
- }
- if(callback){
- callback({
- index: parseInt(this.getAttribute("data-item-order"))+1,
- dom:this
- })
- };
- this.parentNode.querySelector(".aui-active").classList.remove("aui-active");
- this.classList.add("aui-active");
- }
- }
- }
- },
- setRepeat:function(value){
- var self = this;
- self.params.repeatClick = value ? value : false;
- },
- setActive: function(index){
- var self = this;
- index = index ? index : self.params.index;
- var _tab = tabItems[index-1];
- if(_tab.parentNode.querySelector(".aui-active"))_tab.parentNode.querySelector(".aui-active").classList.remove("aui-active");
- _tab.classList.add("aui-active");
- },
- extend: function(a, b) {
- for (var key in b) {
- if (b.hasOwnProperty(key)) {
- a[key] = b[key];
- }
- }
- return a;
- }
- };
- window.auiTab = auiTab;
- })(window);
|