7 个解决方案
#1
就是给document监听一个click事件
$(document).click(function(e){
e = window.event||e;
obj = e.srcElement ? e.srcElement : e.target;
var id = obj.id;
if(id != comboInputId){ // 如果不是点击输入框
$comboContent.hide(); // $comboContent是下拉框部分
return;
}
});
#2
这个不错。。。
#3
#4
可能我没有说明白,这面是一个下拉菜单,它只能通过点击“首页 ”标签才能显示和隐藏,我要的效果当鼠标离开下拉菜单的时候,菜单继续显示,直到鼠标点击“首页”标签或者是点击下拉菜单意外的部分使下拉菜单消失。(我刚刚开始接触JS,很多地方都不是很懂,假如有说错的地方,各位前辈多多包涵。)
代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
.menu {
font-family: arial, sans-serif;
margin:0;
margin:0px 0;
}
.menu ul {
padding:0;
margin:0;
list-style-type: none;
}
.menu ul li {
position:relative;
width:200px;
}
.menu ul li a, .menu ul li a:visited {
display:block;
text-align:center;
text-decoration:none;
width:104px;
color:#000;
border-width:1px 1px 0 0;
background: #3333FF;
line-height:30px;
font-size:11px;
}
.menu ul li ul {
display: none;
}
.menu ul li:hover a {
color:#fff;
background:#6699FF;
}
.menu ul li:hover ul {
// display:block;
position:absolute;
top:31px;
left:0;
width:105px;
}
.menu ul li:hover ul li a {
// display:block;
background:#3333FF;
color:#000;
}
.menu ul li:hover ul li a:hover {
background:#6699FF;
color:#000;
}
</style>
</head>
<body>
<div class="menu" >
<ul >
<li><a class="hide" href="javascript:show();" style="font-size: 15px;color: #ffffff; " >首页</a><div id="kk">
<ul id="context">
<li style="border:0px;"><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars</a></li>
<li style="border:0px;"><a href="../menu/embed.html" title="Wrapping text around images">wrapping text</a></li>
<li style="border:0px;"><a href="../menu/form.html" title="Styling forms">styled form</a></li>
</ul></div>
</li>
</ul>
</div>
</body>
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
if(context.style.display == "block"){
context.style.display = "none";
} else{
context.style.display = "block";
}
}
</script>
</html>
#5
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
var dis=context.style.display;
context.style.display=dis=="block"?"none":"block";
}
document.onclick=function(event){
e=event||window.event;
var el=e.srcElement||e.target;
if(el.parentNode.parentNode.id=='context'){
context.style.display=dis=="none";
}
}
</script>
#6
上面几位的方法都很好 不过我和楼主一样都是刚学JS 很多东西都看不太懂
我想到一个比较笨的方法 暂时有用 就照楼主的代码 加了些东西
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
if(context.style.display == "block"){
context.style.display = "none";
} else{
context.style.display = "block";
}
};
function hide(){
var context = document.getElementById("context");
context.style.display = "none";
};
</script>
<style type="text/css">
.menu {
font-family: arial, sans-serif;
margin:0;
margin:0px 0;
}
.menu ul {
padding:0;
margin:0;
list-style-type: none;
}
.menu ul li {
position:relative;
width:200px;
}
.menu ul li a, .menu ul li a:visited {
display:block;
text-align:center;
text-decoration:none;
width:104px;
color:#000;
border-width:1px 1px 0 0;
background: #3333FF;
line-height:30px;
font-size:11px;
}
.menu ul li ul {
display: none;
}
.menu ul li:hover a {
color:#fff;
background:#6699FF;
}
.menu ul li:hover ul {
// display:block;
position:absolute;
top:31px;
left:0;
width:105px;
}
.menu ul li:hover ul li a {
// display:block;
background:#3333FF;
color:#000;
}
.menu ul li:hover ul li a:hover {
background:#6699FF;
color:#000;
}
#cc{width:100%;height:100%;position:absolute;left:0px;top:0px;}
</style>
</head>
<body>
<div id="cc" onclick="hide();"></div>
<div class="menu" >
<ul >
<li><a class="hide" id="sy" href="javascript:show();" style="font-size: 15px;color: #ffffff; " >首页</a><div id="kk">
<ul id="context">
<li style="border:0px;"><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars</a></li>
<li style="border:0px;"><a href="../menu/embed.html" title="Wrapping text around images">wrapping text</a></li>
<li style="border:0px;"><a href="../menu/form.html" title="Styling forms">styled form</a></li>
</ul></div>
</li>
</ul>
</div>
</body>
</html>
我想到一个比较笨的方法 暂时有用 就照楼主的代码 加了些东西
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
if(context.style.display == "block"){
context.style.display = "none";
} else{
context.style.display = "block";
}
};
function hide(){
var context = document.getElementById("context");
context.style.display = "none";
};
</script>
<style type="text/css">
.menu {
font-family: arial, sans-serif;
margin:0;
margin:0px 0;
}
.menu ul {
padding:0;
margin:0;
list-style-type: none;
}
.menu ul li {
position:relative;
width:200px;
}
.menu ul li a, .menu ul li a:visited {
display:block;
text-align:center;
text-decoration:none;
width:104px;
color:#000;
border-width:1px 1px 0 0;
background: #3333FF;
line-height:30px;
font-size:11px;
}
.menu ul li ul {
display: none;
}
.menu ul li:hover a {
color:#fff;
background:#6699FF;
}
.menu ul li:hover ul {
// display:block;
position:absolute;
top:31px;
left:0;
width:105px;
}
.menu ul li:hover ul li a {
// display:block;
background:#3333FF;
color:#000;
}
.menu ul li:hover ul li a:hover {
background:#6699FF;
color:#000;
}
#cc{width:100%;height:100%;position:absolute;left:0px;top:0px;}
</style>
</head>
<body>
<div id="cc" onclick="hide();"></div>
<div class="menu" >
<ul >
<li><a class="hide" id="sy" href="javascript:show();" style="font-size: 15px;color: #ffffff; " >首页</a><div id="kk">
<ul id="context">
<li style="border:0px;"><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars</a></li>
<li style="border:0px;"><a href="../menu/embed.html" title="Wrapping text around images">wrapping text</a></li>
<li style="border:0px;"><a href="../menu/form.html" title="Styling forms">styled form</a></li>
</ul></div>
</li>
</ul>
</div>
</body>
</html>
#7
toury 的方法,点击标签时下拉标签会出来,但是要想下拉标签消失,除非再次点击标签呀。。。还是不能实现功能。
#1
就是给document监听一个click事件
$(document).click(function(e){
e = window.event||e;
obj = e.srcElement ? e.srcElement : e.target;
var id = obj.id;
if(id != comboInputId){ // 如果不是点击输入框
$comboContent.hide(); // $comboContent是下拉框部分
return;
}
});
#2
这个不错。。。
#3
#4
可能我没有说明白,这面是一个下拉菜单,它只能通过点击“首页 ”标签才能显示和隐藏,我要的效果当鼠标离开下拉菜单的时候,菜单继续显示,直到鼠标点击“首页”标签或者是点击下拉菜单意外的部分使下拉菜单消失。(我刚刚开始接触JS,很多地方都不是很懂,假如有说错的地方,各位前辈多多包涵。)
代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
.menu {
font-family: arial, sans-serif;
margin:0;
margin:0px 0;
}
.menu ul {
padding:0;
margin:0;
list-style-type: none;
}
.menu ul li {
position:relative;
width:200px;
}
.menu ul li a, .menu ul li a:visited {
display:block;
text-align:center;
text-decoration:none;
width:104px;
color:#000;
border-width:1px 1px 0 0;
background: #3333FF;
line-height:30px;
font-size:11px;
}
.menu ul li ul {
display: none;
}
.menu ul li:hover a {
color:#fff;
background:#6699FF;
}
.menu ul li:hover ul {
// display:block;
position:absolute;
top:31px;
left:0;
width:105px;
}
.menu ul li:hover ul li a {
// display:block;
background:#3333FF;
color:#000;
}
.menu ul li:hover ul li a:hover {
background:#6699FF;
color:#000;
}
</style>
</head>
<body>
<div class="menu" >
<ul >
<li><a class="hide" href="javascript:show();" style="font-size: 15px;color: #ffffff; " >首页</a><div id="kk">
<ul id="context">
<li style="border:0px;"><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars</a></li>
<li style="border:0px;"><a href="../menu/embed.html" title="Wrapping text around images">wrapping text</a></li>
<li style="border:0px;"><a href="../menu/form.html" title="Styling forms">styled form</a></li>
</ul></div>
</li>
</ul>
</div>
</body>
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
if(context.style.display == "block"){
context.style.display = "none";
} else{
context.style.display = "block";
}
}
</script>
</html>
#5
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
var dis=context.style.display;
context.style.display=dis=="block"?"none":"block";
}
document.onclick=function(event){
e=event||window.event;
var el=e.srcElement||e.target;
if(el.parentNode.parentNode.id=='context'){
context.style.display=dis=="none";
}
}
</script>
#6
上面几位的方法都很好 不过我和楼主一样都是刚学JS 很多东西都看不太懂
我想到一个比较笨的方法 暂时有用 就照楼主的代码 加了些东西
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
if(context.style.display == "block"){
context.style.display = "none";
} else{
context.style.display = "block";
}
};
function hide(){
var context = document.getElementById("context");
context.style.display = "none";
};
</script>
<style type="text/css">
.menu {
font-family: arial, sans-serif;
margin:0;
margin:0px 0;
}
.menu ul {
padding:0;
margin:0;
list-style-type: none;
}
.menu ul li {
position:relative;
width:200px;
}
.menu ul li a, .menu ul li a:visited {
display:block;
text-align:center;
text-decoration:none;
width:104px;
color:#000;
border-width:1px 1px 0 0;
background: #3333FF;
line-height:30px;
font-size:11px;
}
.menu ul li ul {
display: none;
}
.menu ul li:hover a {
color:#fff;
background:#6699FF;
}
.menu ul li:hover ul {
// display:block;
position:absolute;
top:31px;
left:0;
width:105px;
}
.menu ul li:hover ul li a {
// display:block;
background:#3333FF;
color:#000;
}
.menu ul li:hover ul li a:hover {
background:#6699FF;
color:#000;
}
#cc{width:100%;height:100%;position:absolute;left:0px;top:0px;}
</style>
</head>
<body>
<div id="cc" onclick="hide();"></div>
<div class="menu" >
<ul >
<li><a class="hide" id="sy" href="javascript:show();" style="font-size: 15px;color: #ffffff; " >首页</a><div id="kk">
<ul id="context">
<li style="border:0px;"><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars</a></li>
<li style="border:0px;"><a href="../menu/embed.html" title="Wrapping text around images">wrapping text</a></li>
<li style="border:0px;"><a href="../menu/form.html" title="Styling forms">styled form</a></li>
</ul></div>
</li>
</ul>
</div>
</body>
</html>
我想到一个比较笨的方法 暂时有用 就照楼主的代码 加了些东西
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function show(){
var context = document.getElementById("context");
if(context.style.display == "block"){
context.style.display = "none";
} else{
context.style.display = "block";
}
};
function hide(){
var context = document.getElementById("context");
context.style.display = "none";
};
</script>
<style type="text/css">
.menu {
font-family: arial, sans-serif;
margin:0;
margin:0px 0;
}
.menu ul {
padding:0;
margin:0;
list-style-type: none;
}
.menu ul li {
position:relative;
width:200px;
}
.menu ul li a, .menu ul li a:visited {
display:block;
text-align:center;
text-decoration:none;
width:104px;
color:#000;
border-width:1px 1px 0 0;
background: #3333FF;
line-height:30px;
font-size:11px;
}
.menu ul li ul {
display: none;
}
.menu ul li:hover a {
color:#fff;
background:#6699FF;
}
.menu ul li:hover ul {
// display:block;
position:absolute;
top:31px;
left:0;
width:105px;
}
.menu ul li:hover ul li a {
// display:block;
background:#3333FF;
color:#000;
}
.menu ul li:hover ul li a:hover {
background:#6699FF;
color:#000;
}
#cc{width:100%;height:100%;position:absolute;left:0px;top:0px;}
</style>
</head>
<body>
<div id="cc" onclick="hide();"></div>
<div class="menu" >
<ul >
<li><a class="hide" id="sy" href="javascript:show();" style="font-size: 15px;color: #ffffff; " >首页</a><div id="kk">
<ul id="context">
<li style="border:0px;"><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars</a></li>
<li style="border:0px;"><a href="../menu/embed.html" title="Wrapping text around images">wrapping text</a></li>
<li style="border:0px;"><a href="../menu/form.html" title="Styling forms">styled form</a></li>
</ul></div>
</li>
</ul>
</div>
</body>
</html>
#7
toury 的方法,点击标签时下拉标签会出来,但是要想下拉标签消失,除非再次点击标签呀。。。还是不能实现功能。