div 模拟<select>事件

IE7 下,不能够自定义<select>/<option>的样式,所以为了方便起见,用div可以进行模拟

<!doctype html>
<html>
<meta charset="utf-8">
<title>div模拟select</title>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<style type="text/css">
body,html,ul,li{padding:0;margin:0;list-style:none;}
.search_btn{margin:30px auto 0;display:block;width:97px; height:38px; line-height:38px; background:#CD0000; border-left:1px solid #CD0000; text-align:center; font-size:14px; color:#fff; cursor:pointer;position:relative;z-index:1}
.search_value{overflow:hidden;}
.search_value span{float:left;margin-left:12px;}
.search_value i{width:10px;height:6px;background:url(images/search_arrow.png) no-repeat;float:right;margin:17px 12px 0 0 }
.search_option{width:97px;line-height:30px;text-align:center;color:#000;background:#FCF3F3;display:none;position:absolute;z-index:3;top:38px;left:0;}
.search_option a{color:#000;display:block;text-decoration:none;}
.search_option a:hover{color:#CD0000;text-decoration:none;}
</style>
<body>
 <div class="search_btn">
	<div class="search_value"><span>个股体检</span><i></i></div><!--或者将图片作为search_value的背景图-->
	<div class="search_option">
	  <a class="search_o" href="javascript:void(0)">个股体检</a>
	  <a class="search_o" href="javascript:void(0)">查行情</a>
	</div>
</div>
<div class="search_btn">
	<div class="search_value"><span>个股体检</span><i></i></div><!--或者将图片作为search_value的背景图-->
	<div class="search_option">
	  <a class="search_o"  href="javascript:void(0)">个股体检</a>
	  <a class="search_o"  href="javascript:void(0)">查行情</a>
	</div>
</div>
<script type="text/javascript">
$(".search_value").click(function (evt) {
	evt.stopPropagation(); //阻止冒泡
      $(this).next().show();
	$(this).parent().css("z-index","2").siblings().css("z-index","1"); //当前选中的层级最高,防止IE7 下 遇到position:relative 被遮挡
	$(this).parent().siblings().find(".search_option").hide();   //隐藏其他的下拉框选项
});

$(".search_option a").click(function(){
	$(this).parent().prev().find("span").html($(this).html());   //选中内容填充
	$(this).parents("search_btn").css("z-index","1");
	$(this).parent().hide();
});

$("body").click(function(){  //点击页面其他部分,下拉框消失
	$(".search_option").hide();
	$(".search_btn").css("z-index","1");
});
</script>
</body>
</html>

  

注意事项:
1、如果有多个并列,互相之间会相互影响,IE7下,会被遮挡,为避免此问题,所有 设置层级为:1,选中时,层级改为2
2、<a>标签,缺少herf属性的话,IE7下将无hover效果
3、使用event.stopPropagation();阻止冒泡,event.preventDefault();阻止默认事件

时间: 2024-10-21 08:35:38

div 模拟<select>事件的相关文章

div模拟select下拉菜单效果

有些时候select下拉菜单直接用css调整样式,可能会有兼容性的问题,尤其是右侧的下拉三角,很难用css控制,那怎么办呢?可以采用div模拟select下拉菜单的效果.先直接上代码了: HTML的结构如下: <!doctype html> <html> <head> <meta charset="utf-8" /> <title>div模拟下拉菜单特效</title> <style type="t

div模拟select/option解决兼容性问题及增加可拓展性

想到做这个模拟的原因是之前使用select>option标签的时候发现没有办法操控option的很多样式,比如line-height等,还会由此导致在IE8及以下版本浏览器中的各种问题. 这个模拟思路很简单,也很清晰,我就直接上代码了 html: 第一层div是模拟select标签,第二层div是模拟option下拉列表 1 <div> 2 <div class="sim-select"></div> 3 </div> 4 <

div模拟 select 或者 其他表单组件

1 <form action="" method="post"> 2 <div id="divselect"> 3 <cite>请选择特效分类</cite> 4 <ul> 5 <li><a href="javascript:;" selectid="1">导航菜单</a></li> 6 <li&

用div,ul,input模拟select下拉框

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>案例测试</title> 6 <link rel="stylesheet" href="css/all.css" /> 7 <script type="text/javascript" src=&

模拟select控件&amp;&amp;显示单击的坐标&amp;&amp;用户按下键盘,显示keyCode

<!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-

模拟select

模拟select下拉框 当元素失去焦点时发生 blur 事件.这里在span上绑定trigger.blur模拟blur事件. body加了一个click事件,点击非当前span区域触发span的trigger.blur事件来隐藏下拉ul层; 点击span区域 e.target和span[0] 返回[object HTMLSpanElement] return;保证鼠标点在span区域ul下拉层还在显示. <style> #bindBlur{ position: relative; height

JS模拟select控件的代码

用JavaScript模拟实现Select下拉选框功能,在本效果的实现上,背景图片起到了非常重要的美化作用,然后用CSS和JS分别对LI进行控制,最终实现漂亮的Select效果. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&q

javascript模拟select下拉菜单

javascript模拟select下拉菜单: 由于自带的select下拉菜单确实是不够美观,并且美化的潜力也不够大,所以对外观要求比较高的网站,基本都要使用自定义的select下拉菜单,下面就提供了一个简单的例子供大家参考,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="

模拟select下拉框之多选(数据源采用模拟Ajax数据--原创)

最近需要一个下拉多选,本来想偷懒的,所以在网上百度了一番,最终还是发现没有一个符合自己要求的,所以我自己写了一个插件.下面是GIF动态效果图展示 相信大家已经看到效果了,接下来就是我的代码展示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模拟select下拉框之多选</title> <style