var menu = new Click('#menu',{target:'p',parent:'li',contr:'ul',way:0});
/*
参数说明:
target : 点击事件发生在该元素内
way : 0 只显示一个,1允许显示多个;
parent : 点击的祖先元素标识,用以查找控制元素
contr : 控制的元素
*/
function Click(me,parm){
var tar = parm.target, parent = parm.parent, contr = parm.contr, way = parm.way;
$(me).click(function(e){
var t = $(e.target);
if(t.is(tar) || t.closest(tar).size()>0){
// 下一级
var m = t.closest(parent).children(contr);
// 判断下一级显示
if(m.is(':hidden')) {
m.slideDown();
if(!way){
t.closest(parent).siblings(parent).find(contr).slideUp();
};
}else{
m.slideUp();
};
};
});
};
demo: