自己实现一个select(涉及闭包)

前言:

        写这一篇博客是因为在做自己在项目中发现ie中select里面的内容不能用text-algin居中,所以决定自己写一个原生的select,不过在写的过程中发现了很多有趣的问题,遇到了循环闭包中出现的常见错误,然后自己决定写一篇博客来记录一下。



代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <style>
	.caret{
		display:inline-block;
		width:0;
		height:0;
		margin-left:2px;
		vertical-align:middle;
		border-top:6px solid;
		border-right:4px solid transparent;
		border-left:4px solid transparent;
	}
	.dropdown-menu{
		position: absolute;
		left: 214px;
		top:23px;
		z-index: 1000;
		display:none;
		min-width: 157px;
		padding:0;
		margin: -2px 0 0 0;
		list-style: none;
		background-color: #ffffff;
		border:1px solid #ccc;
		height:50px;
		overflow:auto;
	}
	.dropdown-menu a{
		outline:none;
		text-decoration:none;
		color:#313131;
	}
	.dropdown-menu li{
		text-align:center;
	}
	.dropdown-menu li:hover{
		background-color:#c4c4c4;
	}
	.mytext{
		float:left;
		height: 18px;
		text-align:center;
		background-color: #ffffff;
		color: #555555;
		border: 1px solid #cccccc;
		font-size: 14px;
		line-height:10px;
		padding-bottom:-20px;
	}
	.mybtn{
		float:left;
		height: 22px;
		border: 1px solid #cccccc;
		margin-left:-1px;
	}
	.group{
		float:right;
		display: inline-block;
		margin-left:40px;
		font-size: 0;
		white-space: nowrap;
		vertical-align: middle;
	}
	.unitdiv{
		position:relative;
		height:25px;
		border:0;
		margin-top:20px;
		right:10px;
	}
	.unitdiv label{
		float:left;
	}

	.picdiv{
		display:block;
		width:400px;
		margin-left:110px;
	}
	.pictext{
		border-bottom:2px solid #c4c4c4;
		padding:10px 0 10px 0;
	}
	</style>
</head>
<body>
	<div class="pictext">
		<span>抓图参数</span>
	</div>
	<div class="picdiv">
		<div class="unitdiv">
		  <label>图片格式:</label>
			<div class="group">
			<input type="text" id="mytext1" class="mytext" disabled="true"></input>
			<button type="button" class="mybtn"id="mybtn1" ><span class="caret"></span></button>
			</div>
			<ul class="dropdown-menu" id="menu1">
				<a href="###"><li>1</li></a>
				<a href="javascript:void(0);"><li>2</li></a>
				<a href="javascript:void(0);"><li>3</li></a>
			</ul>
		</div>

	

		<div class="unitdiv">
			<label>图片质量:</label>
			<div class="group">
			<input type="text" id="mytext2" class="mytext" disabled="true"></input>
			<button type="button" id="mybtn2" class="mybtn" ><span class="caret"></span></button>
			</div>
			<ul class="dropdown-menu" id="menu2">
				<a href="javascript:void(0);"><li>1</li></a>
				<a href="javascript:void(0);"><li>2</li></a>
				<a href="javascript:void(0);"><li>3</li></a>
			</ul>
		</div>

	
	
		<div class="unitdiv">
			<label>抓图时间间隔:</label>
			<div class="group">
			<input type="text" id="mytext3" class="mytext" disabled="true"></input>
			<button type="button" id="mybtn3" class="mybtn" ><span class="caret"></span></button>
			</div>
			<ul class="dropdown-menu" id="menu3">
				<a href="javascript:void(0);"><li>1</li></a>
				<a href="javascript:void(0);"><li>2</li></a>
				<a href="javascript:void(0);"><li>3</li></a>
			</ul>
		</div>

	

		<div class="unitdiv">
			<label>抓图数量:</label>
			<div class="group">
			<input type="text" id="mytext4" class="mytext" disabled="true"/>
			<button type="button" id="mybtn4" class="mybtn" ><span class="caret"></span></button>
			</div>
			<ul class="dropdown-menu" id="menu4">
				<a href="javascript:void(0);"><li>1</li></a>
				<a href="javascript:void(0);"><li>2</li></a>
				<a href="javascript:void(0);"><li>3</li></a>
			</ul>
		</div>
		
		
		<div class="unitdiv">
			<label>抓图数量:</label>
				<div class="group">
					<select style="width:185px" id="select_test">
						<option value="2" selected="selected">1</option>
						<option value="1" >2</option>
						<option value="3" >3</option>
					</select>
				</div>
		</div>
	</div>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
	initselect();
})
function initselect(){

	for(var i=1;i<5;i++)
	{
			/*$("#mybtn"+i).click(function(x){
				$(".dropdown-menu").removeClass("tmCover");
				$("#menu"+i).addClass("tmCover");
				$(".dropdown-menu").not(".tmCover").hide();
				$(".tmCover").toggle();
		})*/
		$("#mybtn"+i).click(function(){
			var tmp=i;
			  return function(){
				$(".dropdown-menu").removeClass("tmCover");
				$("#menu"+tmp).addClass("tmCover");
				$(".dropdown-menu").not(".tmCover").hide();
				//$("#menu"+x).toggle();
				$(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值