这是一个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名。
范例:
点击这里
通过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名。
范例:
点击这里
getElementsB
如果你有两个window


2008/10/30 08:56 | by 


