更新时间:2018/8/8 上午8:53:56
更新说明:
1、上传三种需求状态的复选select,分别为:静态复选select;动态加载下拉列表;根据后端数据,可以修改复选值
2、最初的状态是一个个;后面俩个是本人在工作时候发现的需求;然后就做好放上面来了
3、我个人建议使用第三种;因为现在都是前端做数据交互,去渲染数据;但是还是需要根据需求去选择,有问题在下面留言,谢谢
更新时间:2018/7/3 上午10:54:43
更新说明:
1、增加了,选择之后的下拉选项颜色变化。比如添加标签a,下面的下拉元素a的颜色变成其他颜色,加深;
2、在删除标签之后,下拉元素颜色对应变化。比如删除标签a,下面的下拉元素a的颜色恢复正常
更新时间:2018/6/29 下午2:05:39
更新说明:1.更新,函数内部增加了对火狐浏览器的事件捕捉,修复火狐浏览器不生效问题
发布时间:2018-6-28 17:15
1, 只做了ie9及以上的兼容, ie8的兼容以后会加上
2, 部分代码注释如下:
点击输入框时候
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $( ".selectBox .imitationSelect" ).on( "click" , function () { $( this ).parent().next().toggle(); //ul弹窗展开 $( this ).next().toggleClass( "fa-caret-up" ) //点击input选择适合,小图标动态切换 if ($( this ).next().hasClass( "fa-caret-down" )) { $( this ).next().removeClass( "fa-caret-down" ).addClass( "fa-caret-up" ) //点击input选择适合,小图标动态切换 } else { $( this ).next().addClass( "fa-caret-down" ).removeClass( "fa-caret-up" ) //点击input选择适合,小图标动态切换 } if (event.stopPropagation) { // 针对 Mozilla 和 Opera event.stopPropagation(); } else if (window.event) { // 针对 IE window.event.cancelBubble = true ; } }); |
点击右边箭头icon时候
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $( ".selectBox .fa" ).on( "click" , function () { $( this ).parent().next().toggle(); //ul弹窗展开 if ($( this ).hasClass( "fa-caret-down" )) { $( this ).removeClass( "fa-caret-down" ).addClass( "fa-caret-up" ) //点击input选择适合,小图标动态切换 } else { $( this ).addClass( "fa-caret-down" ).removeClass( "fa-caret-up" ) //点击input选择适合,小图标动态切换 } if (event.stopPropagation) { // 针对 Mozilla 和 Opera event.stopPropagation(); } else if (window.event) { // 针对 IE window.event.cancelBubble = true ; } }); |
定义一个存储数据的数组,用于下面重复选择判断,删除标签
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | var oliIdArray = []; $( ".selectUl li" ).click( function (event) { event = event || window.event; $( this ).addClass( "actived_li" ).siblings().removeClass( "actived_li" ); //点击当前的添加。actived_li这个类;其他的移除这个类名 var oliId = $( this ).attr( "oliId" ); if (oliIdArray.indexOf(oliId) > -1) { } else { oliIdArray.push(oliId); $( this ).parent().prev().children().attr( "oliId" , oliIdArray); //把当前点击的oliId赋值到显示的input的oliId里面 $( "#role_select" ).append( "<span class='person_root'><span>" + $( this ).text() + "</span><i class='close' oliId='" + oliId + "' >x</i></span>" ); } //事件委托进行绑定事件,每个删除事件得以进行 var role_select = document.getElementById( "role_select" ); var role_span = role_select.getElementsByTagName( 'i' ); console.log( "span的选择个数" + role_span.length) for ( var i = 0; i < role_span.length; i++) { role_span[i].onclick = function () { var oliId = $( this ).attr( "oliId" ); console.log( "oliId" + oliId) for ( var i = 0; i < oliIdArray.length; i++) { if (oliIdArray[i] === oliId) { //表示数组里面有这个元素 var id = i; //元素位置 console.log(oliId) console.log(id) console.log(oliIdArray); oliIdArray.splice(id, 1); } } console.log(oliIdArray); $( this ).parent().remove(); //console.log(oliIdArray) event.stopPropagation(event); event.preventDefault(event); //阻止浏览器默认行为 } } }); |
点击任意地方隐藏下拉
1 2 3 4 5 | $(document).click( function (event) { event = event || window.event; $( ".inputCase .fa" ).removeClass( "fa-caret-up" ).addClass( "fa-caret-down" ) //当点隐藏ul弹窗时候,把小图标恢复原状 $( ".selectUl" ).hide(); //当点击空白处,隐藏ul弹窗 }); |
特别申明:
本站所有资源都是由网友投稿发布,或转载各大下载站,请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:lei1294551502@163.com