ul模拟select,位置,数据,是否可输入及输入提示效果都可作为参数直接传入
转发请注明出处,虽然转发几率不大。。。
HTML
<span class="theContainer"></span>
CSS
body {padding:10px;}
* {margin:; padding:; font-size:12px;}
ul,li
{
list-style-type:none;
}
.theMockSelect{
width: 160px;
display: inline-block;
line-height: 20px;
position: relative;
}
.mockSelectBox{
display: block;
width: 180px;
overflow: hidden;
}
.liContainer{
width: 160px;
}
.liContainer li{
line-height:25px;
padding-left:5px;
display: block;
min-width: 170px;
}
.liContainer li:hover{
display:block;
background: #ccc;
}
.clickIcon{
position: absolute;
right: -10px;
top: 12px;
width:;
height:;
border-top: 8px solid #aaa;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 5px solid transparent;
}
.theInput{
display: block;
width: 90%;
height: 28px;
padding: 2px 8px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
JS
$(document).ready(function () {
var theMockSelect = {
className:'theMockSelect', //一个ul的id,放模拟框
dataArray:['first','second','third','forth'],//数组数据 init:function(theContainer,data,flag){
this.className = theContainer?theContainer:this.className;
this.dataArray = data?data:this.dataArray; var allTheLi='',theDataArray = this.dataArray;
$('.'+this.className).append('<ul class="theMockSelect"><li class="mockSelectBox"><input class="theInput" type="text" readonly="readonly"/><div class="clickIcon"></div><ul class="liContainer"></ul></li></ul>'); for(var i=0,l=theDataArray.length;i<l;i++){
allTheLi += '<li>'+theDataArray[i]+'</li>';
} $('.liContainer').append(allTheLi);
//根据参数看是否想输入
$('.theInput').prop('readonly',flag);
this.allTheEvent();
},
allTheEvent:function(){
$('.liContainer').hide();
//点击下拉
$('.clickIcon').on('click',function () { //鼠标移动函数
var theUl = $(this).parent().find('.liContainer');
if(theUl.is(':hidden')) {
theUl.children().show();
theUl.slideDown(); //找到ul.son_ul显示
$(this).parent().find('li').hover(function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover')
});
}else {
theUl.slideUp();
}
});
//点击子元素
$('.liContainer li').on('click',function () {
$(this).parent().parent().find('input').val($(this).html());
$(this).parent().slideUp();
});
//输入事件
$('.theInput').on('keyup',function(){
var youInput = $(this).val();
$('.liContainer li').each(function(index,item){
if($(item).text().indexOf(youInput)>=0&&youInput!==''){
$(item).show();
$('.liContainer').slideDown();
}else {
$(item).hide();
}
});
});
}
}; theMockSelect.init('theContainer',['666','555','333','111'],false);
});
ul模拟select,位置,数据,是否可输入及输入提示效果都可作为参数直接传入的更多相关文章
- 联合县城市,采用ajax,而使用ul模拟select下拉
接待处代码 js //采用jquery展示鼠标放到省ul下拉显示 $("#province").hover(function(){ ...
- ul+js模拟select+改进
html: <div class="select_box"> <input type="text" value="还款方式" ...
- ul -- li 模拟select下拉框
在写项目中 用到下拉框,一般用 <select name="" id=""> <option value=</option> &l ...
- c# JD快速搜索工具,2015分析JD搜索报文,模拟请求搜索数据,快速定位宝贝排行位置。
分析JD搜索报文 搜索关键字 女装 第二页,分2次加载. rt=1&stop=1&click=&psort=&page=3http://search.jd.com/Se ...
- Bootstrap 3之美06-Page Header、Breadcrumbs、Dropdowns、Button Dropdowns、用Button和Dropdowns模拟Select、Input Groups、Thumbnails、Panels、Wells
本篇主要包括: ■ Page Header■ Breadcrumbs■ Button Groups■ Dropdowns■ Button Dropdowns■ 用Button和Dropdo ...
- div 模拟<select>事件
IE7 下,不能够自定义<select>/<option>的样式,所以为了方便起见,用div可以进行模拟 <!doctype html> <html> ...
- 模拟提交API数据Pyqt版
其实这个模拟提交数据之前已经写过篇: Python requests模拟登录 因为现在在做的项目中需要一个debug请求调试API,用PHP的CURL写了一个,又因Pyqt更能直观灵活的显示请求的参数 ...
- jQuery插件:模拟select下拉菜单
没搞那么复杂,工作中,基本够用.. <!doctype html> <html> <head> <meta charset="utf-8" ...
- 模拟select,隐藏下拉列表的几种实现
前言 平时开发过程中,出于各种原因模拟原生slect的要求并不算少见. 在实现的过程中,点击其他区域隐藏下拉列表,又是一个必备的功能, 最近在一次开发的过程中引发了点思考,做下总结. 现象 实际中的实 ...
随机推荐
- MockWebServer使用指南
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771797 本文出自: [HansChen的博客] MockWebServer介绍 ...
- Apr编程
一.简介 http://www.xuebuyuan.com/2195578.html 二.教程 http://dev.ariel-networks.com/apr/
- caret 分类回归树 用法
http://topepo.github.io/caret/feature-selection-overview.html
- Smarty3——复合变量修饰器输
你可以联合使用多个修饰器. 它们会按复合的顺序来作用于变量,从左到右. 它们必须以| (竖线)进行分隔,以‘:’号设置参数 {$articleTitle} {$articleTitle|upper|s ...
- VC解决方案,项目,开发一段时间启动调试很慢,半天才开始链接
笔者这两天写代码过程中,发现自己解决方案下的程序启动调试,半天才开始加载相关的各种库.导致调试的时候很是郁闷 开始以为是项目关联的工程太多导致,但是在相同的解决方案sln下面,新建一个简单的控制台程序 ...
- shell 字符串中定位字符位置 获取字符位置
linux shell 字符串操作(长度,查找,替换)详解 该博文中描述的如下两个字符串操作, ${string:position} #在$string中, 从位置$position开始提取子串 ${ ...
- Extjs Hello extjs
<html > <head runat="server"> <title></title> <link rel="s ...
- DB2 添加license
DB2 - DB2COPY1 - DB2-0 服务不能启动报的错是这样的:Microsoft Management Console Windows 不能在 本地计算机 启动 DB2 - DB2.有 ...
- android Base64字符串与Bitmap相互转换
/** * 将bitmap转换成base64字符串 * * @param bitmap * @return base64 字符串 */ public String bitmaptoString(Bit ...
- 微信 oauth2 两次回调
场景: logger.Info("f: " + wx.From); logger.Info("c: " + wx.Code); logger.Info(&quo ...