源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

基于jquery的用dl模拟实现可自定义样式的SELECT下拉列表(已封装)

  • 时间:2020-08-29 11:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于jquery的用dl模拟实现可自定义样式的SELECT下拉列表(已封装)
具体思路就不说了,比较常规, 代码中也有注释. 使用方法也不费话了, 就是一个简单的全局函数封装, 不懂的看下源码中注释或Google . 另外, 有兴趣的朋友,可以尝试在本插件基础上改一个可输入的下拉列表. 思路差不多,哈. 演示及代码:  [url=http://demo.jb51.net/js/dl_SELECT/index.html]演示代码[/url] [url=http://xiazai.jb51.net/201011/yuanma/dl_SELECT.rar]代码下载[/url] 运行代码:
[Ctrl+A 全选 注:[url=http://www.1sucai.cn/article/23421.htm]如需引入外部Js需刷新才能执行[/url]]
核心代码:
[u]复制代码[/u] 代码如下:
;(function($){ $.fn.extend({ iSelect: function(options){ var iset = { name: $('.selectitem'), //容器 select: $('.selectitem>dl'), //dl列表 dropCss: 'drop', //收藏状态dt的样式 shrinkCss: 'shrink', //展开状态dt的样式 hoverCss: 'hover', //鼠标划过dd时的样式 clearTime: 100, //允许用户快速划过不触发的时间(ms) dropTime: 100, //展开时间(ms) shrinkTime: 100 //收缩时间(ms) } options = options || {}; $.extend(iset, options); var mainHeight = iset.name.height();//容器高度 var selectHeight = iset.select.height(); //dl实际高度 var curTxt = iset.select.find('dt').html(); //dt默认html内容 var self = null; var hoverElem = null; //避免用户快速划过时触发事件 iset.name.each(function(){ $(this).hover(function(){ self = this; hoverElem = setTimeout(function(){ $(self).stop(true, false).animate({ //鼠标划过时,展开dl height: selectHeight }, iset.dropTime); if ($(self).find('dt').html() == curTxt) { //判断是否有选择下拉列表,若无则改变dt样式 $(self).find('dt').attr('class', iset.dropCss); } //dd的鼠标事件 $(self).find('dd').mouseover(function(){ $(this).addClass(iset.hoverCss).siblings().removeClass(iset.hoverCss); }).mousedown(function(){ //鼠标点击时取值并赋给dt $(self).find('dt').html($(this).html()).attr('class', $(this).attr('class')); $(self).stop(true, false).animate({ height: mainHeight }, iset.shrinkTime); }).removeClass(iset.hoverCss); }, iset.clearTime); }, function(){ //鼠标移出后触发的事件 clearTimeout(hoverElem); $(self).stop(true, false).animate({ height: mainHeight }, iset.shrinkTime); if ($(self).find('dt').html() == curTxt) { $(self).find('dt').attr('class', iset.shrinkCss); } }); }) } }) })(jQuery);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部