为什么要模拟select下拉菜单效果
默认select下拉菜单样式控制非常麻烦,想要做一个漂亮的select效果更是难上难,所以使用div+css+jquery模拟select下拉菜单效果,比默认的Select更漂亮,样式也更好设计。
关键技术点
.option下拉列表使用绝对定位.
点击.select_box实现下拉收缩效果
点击option内容实现赋值功能
如果option处于展开状态 点击body除select_box部分 option将关闭
关键代码与说明
<script type="text/javascript">
//模拟select下拉收缩效果
$(".select_box").click(function (event) {
//阻止事件冒泡到父元素,阻止任何父事件处理程序被执行。
event.stopPropagation();
//用于切换被选元素的 hide() 与 show()
$(this).find(".option").toggle();
$(this).parent().siblings().find(".option").hide();
});
//点击option内容实现赋值功能
$(".option a").click(function () {
var value = $(this).text();
$(this).parent().siblings(".selet_open").text(value);
$("#select_value").val(value)
});
//如果option处于展开状态 点击body除select_box部分 option将关闭
$(document).click(function (event) {
var eo = $(event.target);
if ($(".select_box").is(":visible") && eo.attr("class") != "option" && !eo.parent(".option").length)
$('.option').hide();
});
</script>
