JavaScript-JS控制文本框下方的 下拉框显示/隐藏的问题
情况是这样,有一个文本框,下边有一下拉框 类似日历选取那样,下拉框里有按钮可点击,当鼠标点击(或聚焦)文本框时,下拉框显示, 点击下拉框内时也不隐藏, 点击下拉框外边时(也就是任意空白地方 不包含下拉框) 才让下拉框隐藏, 但如果我绑定的是文本框的blur事件的话 ,点击下拉框的里边时也会被隐藏掉。。 那么有什么方法 可以实现 点击文本框显示,点击下拉框里边不隐藏, 点击下拉框以外时(任意空白)才隐藏下拉框 的方法呢??
贴图:
源码:
<strong><!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>
<style>
*{
margin:0;
padding:0;
}
#box{
width:500px;
padding:30px;
margin:0 auto;
background:#E1FFF2;
}
.b1{
position:relative;
margin-bottom:20px;
width:300px;
}
input{
height:30px;
width:100%;
}
p.slide{
display:none;
position:absolute;
left:0;
top:30px;
width:93%;
background:#FFFFFF;
height:200px;
padding:40px 10px;
padding-top:0;
border:1px solid #CCC;
z-index:999;
overflow:hidden;
}
#title{
background:#339933;
color:#fff;
height:30px;
width:100%;
display:block;
}
#title span{
display:block;
font-weight:bold;
width:60px;
background:#AEFDEB;
line-height:30px;
text-align:center;
cursor:pointer;
float:left;
}
#title span:hover{
background-color:#09F;
}
#title span.next{
float:right;
}
</style>
<script>
window.onload=function(){
var ob=document.getElementById('box');
var oInp=ob.getElementsByTagName('input');
var oSlide=ob.getElementsByTagName('p');
var ot=document.getElementById('title');
var tBtn=ot.getElementsByTagName('span');
var i=0;
var bBtn=true;
for(;i<oInp.length;i++){
oInp[i].index=i; // 索引
oInp[i].onfocus=function(){
bBtn=true;
if(bBtn){ // 变量为true时才
oSlide[this.index].style.display="block";
}
}
oInp[i].onblur=function(){
if(bBtn){ // 变量为true时才
oSlide[this.index].style.display="none";
}
}
}// end for
for(;i<tBtn.length;i++){
tBtn[i].onmouseover=function(){
bBtn=false;
}
tBtn[i].onmouseout=function(){
bBtn=true;
}
}
} // end onload
</script>
</head>
<body>
<div id="box">
<div class="b1">
<input type="text" />
<p class="slide">
<a id="title">
<span class="prev"><</span>
<span class="next">></span>
</a>
当鼠标点击里边时,失去焦点后,如何隐藏这个框呢?
</p>
</div>
</div> <!--end box-->
</body>
</html> </strong>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
给body绑定click事件,隐藏下拉框,里面判断一下当前节点是不是文本框或者下拉框,如果是就什么也不做