Newer
Older
alarm / WebRoot / s / jquery-easyui-1.3.2 / plugins / jquery.accordion.js
zhout on 2 Mar 2022 6 KB first commit
/**
 * jQuery EasyUI 1.3.2
 * 
 * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL or commercial licenses
 * To use it on other terms please contact us: jeasyui@gmail.com
 * http://www.gnu.org/licenses/gpl.txt
 * http://www.jeasyui.com/license_commercial.php
 *
 */
(function($){
function _1(_2){
var _3=$.data(_2,"accordion").options;
var _4=$.data(_2,"accordion").panels;
var cc=$(_2);
_3.fit?$.extend(_3,cc._fit()):cc._fit(false);
if(_3.width>0){
cc._outerWidth(_3.width);
}
var _5="auto";
if(_3.height>0){
cc._outerHeight(_3.height);
var _6=_4.length?_4[0].panel("header").css("height","")._outerHeight():"auto";
var _5=cc.height()-(_4.length-1)*_6;
}
for(var i=0;i<_4.length;i++){
var _7=_4[i];
var _8=_7.panel("header");
_8._outerHeight(_6);
_7.panel("resize",{width:cc.width(),height:_5});
}
};
function _9(_a){
var _b=$.data(_a,"accordion").panels;
for(var i=0;i<_b.length;i++){
var _c=_b[i];
if(_c.panel("options").collapsed==false){
return _c;
}
}
return null;
};
function _d(_e,_f){
var _10=$.data(_e,"accordion").panels;
for(var i=0;i<_10.length;i++){
if(_10[i][0]==$(_f)[0]){
return i;
}
}
return -1;
};
function _11(_12,_13,_14){
var _15=$.data(_12,"accordion").panels;
if(typeof _13=="number"){
if(_13<0||_13>=_15.length){
return null;
}else{
var _16=_15[_13];
if(_14){
_15.splice(_13,1);
}
return _16;
}
}
for(var i=0;i<_15.length;i++){
var _16=_15[i];
if(_16.panel("options").title==_13){
if(_14){
_15.splice(i,1);
}
return _16;
}
}
return null;
};
function _17(_18){
var _19=$.data(_18,"accordion").options;
var cc=$(_18);
if(_19.border){
cc.removeClass("accordion-noborder");
}else{
cc.addClass("accordion-noborder");
}
};
function _1a(_1b){
var cc=$(_1b);
cc.addClass("accordion");
var _1c=[];
cc.children("div").each(function(){
var _1d=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)});
var pp=$(this);
_1c.push(pp);
_20(_1b,pp,_1d);
});
cc.bind("_resize",function(e,_1e){
var _1f=$.data(_1b,"accordion").options;
if(_1f.fit==true||_1e){
_1(_1b);
}
return false;
});
return {accordion:cc,panels:_1c};
};
function _20(_21,pp,_22){
pp.panel($.extend({},_22,{collapsible:false,minimizable:false,maximizable:false,closable:false,doSize:false,collapsed:true,headerCls:"accordion-header",bodyCls:"accordion-body",onBeforeExpand:function(){
var _23=_9(_21);
if(_23){
var _24=$(_23).panel("header");
_24.removeClass("accordion-header-selected");
_24.find(".accordion-collapse").triggerHandler("click");
}
var _24=pp.panel("header");
_24.addClass("accordion-header-selected");
_24.find(".accordion-collapse").removeClass("accordion-expand");
},onExpand:function(){
var _25=$.data(_21,"accordion").options;
_25.onSelect.call(_21,pp.panel("options").title,_d(_21,this));
},onBeforeCollapse:function(){
var _26=pp.panel("header");
_26.removeClass("accordion-header-selected");
_26.find(".accordion-collapse").addClass("accordion-expand");
}}));
var _27=pp.panel("header");
var t=$("<a class=\"accordion-collapse accordion-expand\" href=\"javascript:void(0)\"></a>").appendTo(_27.children("div.panel-tool"));
t.bind("click",function(e){
var _28=$.data(_21,"accordion").options.animate;
_35(_21);
if(pp.panel("options").collapsed){
pp.panel("expand",_28);
}else{
pp.panel("collapse",_28);
}
return false;
});
_27.click(function(){
$(this).find(".accordion-collapse").triggerHandler("click");
return false;
});
};
function _29(_2a,_2b){
var _2c=_11(_2a,_2b);
if(!_2c){
return;
}
var _2d=_9(_2a);
if(_2d&&_2d[0]==_2c[0]){
return;
}
_2c.panel("header").triggerHandler("click");
};
function _2e(_2f){
var _30=$.data(_2f,"accordion").panels;
for(var i=0;i<_30.length;i++){
if(_30[i].panel("options").selected){
_31(i);
return;
}
}
if(_30.length){
_31(0);
}
function _31(_32){
var _33=$.data(_2f,"accordion").options;
var _34=_33.animate;
_33.animate=false;
_29(_2f,_32);
_33.animate=_34;
};
};
function _35(_36){
var _37=$.data(_36,"accordion").panels;
for(var i=0;i<_37.length;i++){
_37[i].stop(true,true);
}
};
function add(_38,_39){
var _3a=$.data(_38,"accordion").options;
var _3b=$.data(_38,"accordion").panels;
if(_39.selected==undefined){
_39.selected=true;
}
_35(_38);
var pp=$("<div></div>").appendTo(_38);
_3b.push(pp);
_20(_38,pp,_39);
_1(_38);
_3a.onAdd.call(_38,_39.title,_3b.length-1);
if(_39.selected){
_29(_38,_3b.length-1);
}
};
function _3c(_3d,_3e){
var _3f=$.data(_3d,"accordion").options;
var _40=$.data(_3d,"accordion").panels;
_35(_3d);
var _41=_11(_3d,_3e);
var _42=_41.panel("options").title;
var _43=_d(_3d,_41);
if(_3f.onBeforeRemove.call(_3d,_42,_43)==false){
return;
}
var _41=_11(_3d,_3e,true);
if(_41){
_41.panel("destroy");
if(_40.length){
_1(_3d);
var _44=_9(_3d);
if(!_44){
_29(_3d,0);
}
}
}
_3f.onRemove.call(_3d,_42,_43);
};
$.fn.accordion=function(_45,_46){
if(typeof _45=="string"){
return $.fn.accordion.methods[_45](this,_46);
}
_45=_45||{};
return this.each(function(){
var _47=$.data(this,"accordion");
var _48;
if(_47){
_48=$.extend(_47.options,_45);
_47.opts=_48;
}else{
_48=$.extend({},$.fn.accordion.defaults,$.fn.accordion.parseOptions(this),_45);
var r=_1a(this);
$.data(this,"accordion",{options:_48,accordion:r.accordion,panels:r.panels});
}
_17(this);
_1(this);
_2e(this);
});
};
$.fn.accordion.methods={options:function(jq){
return $.data(jq[0],"accordion").options;
},panels:function(jq){
return $.data(jq[0],"accordion").panels;
},resize:function(jq){
return jq.each(function(){
_1(this);
});
},getSelected:function(jq){
return _9(jq[0]);
},getPanel:function(jq,_49){
return _11(jq[0],_49);
},getPanelIndex:function(jq,_4a){
return _d(jq[0],_4a);
},select:function(jq,_4b){
return jq.each(function(){
_29(this,_4b);
});
},add:function(jq,_4c){
return jq.each(function(){
add(this,_4c);
});
},remove:function(jq,_4d){
return jq.each(function(){
_3c(this,_4d);
});
}};
$.fn.accordion.parseOptions=function(_4e){
var t=$(_4e);
return $.extend({},$.parser.parseOptions(_4e,["width","height",{fit:"boolean",border:"boolean",animate:"boolean"}]));
};
$.fn.accordion.defaults={width:"auto",height:"auto",fit:false,border:true,animate:true,onSelect:function(_4f,_50){
},onAdd:function(_51,_52){
},onBeforeRemove:function(_53,_54){
},onRemove:function(_55,_56){
}};
})(jQuery);