MenuSwitch 클래스 작성의 출발점은 백그라운드 관리 항목이 많아질수록 메뉴 표시에 스크롤 바가 나타나서 페이지가 보기에 매우 보기 흉하다는 것에서 시작하여 이 JS 클래스를 직접 작성하게 되었습니다.
이 기능 클래스는 스타일과 기능을 분리하기 위해 DIV CSS JS 메서드를 사용하여 현재 널리 사용되는 Web2.0 접근 방식을 채택합니다. 먼저 시연효과를 보여드리겠습니다
기능 메뉴 스위치(className){
this._elements = [];
this._default = -1;
this._className = className;
this._previous = false;
}
MenuSwitch.prototype.setDefault = function(id){
this._default = 숫자(id);
}
MenuSwitch.prototype.setPrevious = function(flag){
this._previous = Boolean(flag);
}
MenuSwitch.prototype.collectElementbyClass = function(){
this._elements = [];
var allelements = document.getElementsByTagName("div");
for(var i=0;i
var mItem = allelements[i];
if (typeof mItem.className == "string" && mItem.className == this._className){
var h3s = mItem.getElementsByTagName("h3");
var uls = mItem.getElementsByTagName("ul");
if(h3s.length == 1 && uls.length == 1){
h3s[0].style.cursor = "손";
if(this._default == this._elements.length){
uls[0].style.display = "차단";
}else{
uls[0].style.display = "없음";
}
this._elements[this._elements.length] = mItem;
}
}
}
}
MenuSwitch.prototype.open = function(mElement){
var uls = mElement.getElementsByTagName("ul");
uls[0].style.display = "차단";
}
MenuSwitch.prototype.close = function(mElement){
var uls = mElement.getElementsByTagName("ul");
uls[0].style.display = "없음";
}
MenuSwitch.prototype.isOpen = function(mElement){
var uls = mElement.getElementsByTagName("ul");
return uls[0].style.display == "차단";
}
MenuSwitch.prototype.toggledisplay = 기능(헤더){
var mItem;
if(window.addEventListener){
mItem = header.parentNode;
}else{
mItem = header.parentElement;
}
if(this.isOpen(mItem)){
this.close(mItem);
}else{
this.open(mItem);
}
if(!this._previous){
for(var i=0;i if(this._elements[i] != m항목 ){
var uls = this._elements[i].getElementsByTagName("ul");
uls[0].style.display = "없음";
}
}
}
}
MenuSwitch.prototype.init = function(){
var 인스턴스 = 이것;
this.collectElementbyClass();
if(this._elements.length==0){
return;
}
for(var i=0;i var h3s = this._elements[i].getElementsByTagName("h3");
if(window.addEventListener){
h3s[0].addEventListener("click",function(){instance.toggledisplay(this);},false);
}else{
h3s[0].onclick = function(){instance.toggledisplay(this);}
}
}