这是一个JavaScript版本的记忆菜单。
通过cookie来记录用户当前点击的菜单项,JavaScript代码如下:


function submenu(a,b){
  display(b);
  var items = document.getElementsByClassName(a);
  var sub_items = document.getElementsByClassName(b);
  
  for (var i=0; i<items.length; i++) {
    items[i].links=i;
    items[i].onclick = function() {
      if(sub_items[this.links].style.display!="block"){
        display(b);
        sub_items[this.links].style.display="block";
        setCookie("submenus",this.links);
      }else{
        var nowhover=getCookie("submenus");
        if(this.links == nowhover){
        
        }else{
          sub_items[this.links].style.display="none";
        }
        
      }
    }
  }
  
  if (getCookie("submenus") != "") {
    var now=getCookie("submenus");
    sub_items[now].style.display="block";
  }else{
    sub_items[0].style.display="block";
  }
}
function setCookie(name, value) {
  var today = new Date();
  var expires = new Date();
  expires.setTime(today.getTime() + 1000 * 60 * 60 * 24 * 365);
  document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString();
}
function getCookie(Name) {
  var search = Name + "=";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search);
    if (offset != -1) {
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
    if (end == -1) {
      end = document.cookie.length;
    }
      return unescape(document.cookie.substring(offset, end));
    } else {
      return ("");
    }
  } else {
    return ("");
  }
}
function display(x){
  var sub_item = document.getElementsByClassName(x);
  for(var i=0;i<sub_item.length;i++){
    sub_item[i].style.display="none";
  }
}
document.getElementsByClassName = function(eleClassName){
  var getEleClass = [];//定义一个数组
  var myclass = new RegExp("\\b"+eleClassName+"\\b");//创建一个正则表达式对像
  var elem = this.getElementsByTagName("*");//获取文档里所有的元素
  for(var h=0;h<elem.length;h++){
    var classes = elem[h].className;//获取class对像
    if (myclass.test(classes)) getEleClass.push(elem[h]);//正则比较,取到想要的CLASS对像
  }
  return getEleClass;//返回数组
}




请根据你的二级菜单调用submenu(a,b)这个函数。其中参数a是一级菜单的class名 参数b是二级菜单的class名。

范例:
点击这里
学习笔记 | 评论(0) | 引用(0) | 阅读(727)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]