div ul li模拟下拉选项(option标签)

原创 2013年12月04日 09:53:54

现在很多页面为样式的美观,对option标签的使用越来越少了,而是自己定义一种样式来模拟这样的情况,下面这个例子是我自己写的方法,但是没有做css样式,希望大家能够明白我在说什么

 

<!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=gb2312" />
<script src="lib/jquery-1.6.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(
	function(){
		$("#lang").click(function(){
			if("block" == $("#huangbiao").css("display")){
				hideLi();
			}else{
				showLi();
			}
		});
		
		$("li").each(function(i,v){
			$(this).click(function(){
				$("#lang").val($(this).html());
				hideLi();
			});
		});
		
		$("#lang").blur(function(){
			setTimeout(hideLi,200);
		});
		
	}
	
);



function showLi(){
	$("#huangbiao").show();
}
function hideLi(){
	$("#huangbiao").hide();
}

</script>
<title>无标题文档</title>
</head>
<body>
	<input type="text" id="lang" class="input" value="English" readonly="readonly"/>
	<DIV style="display: none" id="huangbiao">
		<ul>
			<li>dddd</li>
			<li>ssss</li>
		</ul>
	</DIV>
</body>
</html>

 

技术难点:

当鼠标没有点击空白处的时候应该让现实出来的下拉列表隐藏起来,这样就会导致一个问题,当我点击下面的li标签的内容时候,先触发onblur事件,导致li标签先隐藏,在点击li的内容的时候实际上是一个空组件,而没有触发“赋值事件”,导致不能能够满足option组件的基本需求。

 

我的解决方式是当触发blur事件的时候,推迟0.2秒再隐藏起来,这实际上是触发了两个事件——先执行onblur事件,在执行li组件的赋值事件。

 

 

用li模拟select实现下拉框

body {padding:10px;} * {margin:0; padding:0; font-size:12px;} ul,li { list-style-type:none; } .Sel...

利用ul 和 li 实现导航条上的下拉菜单

当鼠标移动到菜单上  出现下拉菜单 ,效果图要注意 ul 上移至 父元素li的位置,否则鼠标离开菜单时 下拉菜单就会消失,导致鼠标无法移动到下拉菜单上 html实现代码      ...
  • ybhjx
  • ybhjx
  • 2016年03月10日 16:17
  • 9241

div伪装select下拉列表

html: select美化自定义下拉框样式 - 站长素材 *{margin:0;padding:0;} select{outline:none;} ul{list-style:none...
  • liu__hua
  • liu__hua
  • 2014年08月19日 16:36
  • 12356

使用ul实现下拉列表

使用ul实现下拉列表 使用ul实现下拉列表 *{margin:0px; padding:0px;}//清除默认 ul{ width:520px; //设置ul宽 heig...

jQuery实现input下拉多选框

jQuery实现input下拉多选框 支持单选,多选。

初识ReactJS的组件化开发(九):下拉框的使用方法

js代码: // 创建组件 var NavBar = React.createClass({ removeNode: function () { ReactDOM.unmoun...

使用<div><ul><li>模拟<select>下拉框

body {             padding: 0;             margin: 0;             font-size: 12px;         } ...

【自制】ul、li模拟select效果

利用ul、li结合javascript模拟出selec的t效果,相比较html提供的原始select标签有以下好处: 1.使下拉选择框的可控性请更高,你尽可以按你想要的样式、大小随意制作出满足你需求的...

#学习笔记#(16)ul li 二级下拉菜单-jQuery

body{font-family:微软雅黑;} ul { list-style:none; width:115px; line-height:30px; } ul li { background:#D...

DIV+CSS实操六:经管系网页添加导航栏下拉菜单

其实很久之前就想实现这个功能,一直没有去付诸行动,大早上的就开始看老师讲过的一些简单的JS下拉菜单的 知识,可能是我们基础差,老师讲的也是非常基础的一些,但是我们还是没有听懂,仔细研究了一番,反反复...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:div ul li模拟下拉选项(option标签)
举报原因:
原因补充:

(最多只允许输入30个字)