基于jquery的checkbox下拉框插件代码


Posted in Javascript onJune 25, 2010

option_check.js代码 :

/***************************************** 
调用方法为: 
Jselect($("#inputid"),{ 
bindid:'bindid', 
hoverclass:'hoverclass', 
optionsbind:function(){return hqhtml();} 
}); 
inputid为下拉框要绑定的文本框id 
bindid为点击弹出/收回下拉框的控件id 
hoverclass为鼠标移到选项时的样式 
hqhtml为绑定的数据 
******************************************/ 
(function($){ 
$.showselect = { 
init : function(o,options){ 
var defaults = { 
bindid : null, //事件绑定在bindid上 
hoverclass:null, //鼠标移到选项时样式名称 
optionsbind:function(){} //下拉框绑定函数 
} 
var options = $.extend(defaults,options); 
if(options.optionsbind!=null){//如果绑定函数不为空 
this._setbind(o,options); 
} 
if(options.bindid!=null){ 
this._showcontrol(o,options); 
} 
}, 
_showcontrol:function(o,options){//控制下拉框显示 
$("#"+options.bindid).toggle(function(){ 
$(o).next().slideDown(); 
},function(){ 
$(o).next().slideUp(); 
}) 
}, 
_setbind:function(o,options){//绑定数据 
var optionshtml="<div style=\"z-index: 999; position: absolute;\">" 
+options.optionsbind()+"</div>"; 
$(o).after(optionshtml); 
var offset= $(o).offset(); 
var w=$(o).width(); 
$(o).next().css({top:offset.top+$(o).height()+7,left:offset.left,width:w}); 
if(options.hoverclass!=null){ 
$(o).next().find("tr").hover(function(){$(this).addClass(options.hoverclass);}, 
function(){$(this).removeClass(options.hoverclass);}); 
} 
$(o).next().find("input[type=checkbox]").filter("[lang=checked]").each(function(){$(this).attr("checked","checked");}); 
$(o).next().find("input[type=checkbox]").click(function(){ 
var $ckoption=$(this).attr("checked"); 
if($ckoption){ 
$(this).attr("checked",""); 
}else{ 
$(this).attr("checked","checked"); 
} 
}); 
$(o).next().find("tr").click(function(){ 
var $ckflag=$(this).find("input[type=checkbox]"); 
if($ckflag.attr("checked")){ 
$ckflag.attr("checked",""); 
$ckflag.attr("lang",""); 
} 
else{ 
$ckflag.attr("checked","checked"); 
$ckflag.attr("lang","checked"); 
} 
var selarray=new Array(); 
$(o).next().find("input[type=checkbox]").each(function(){ 
if($(this).attr("checked")) 
selarray.push($(this).parent().next().text()); 
}); 
$(o).val(selarray.join(',')); 
}); 
$(o).next().hide(); 
} 
} 
Jselect = function(o,json){ 
$.showselect.init(o,json); 
}; 
})(jQuery);

html代码:
<script type="text/javascript" src="jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="option_check.js"></script> 
<style type="text/css"> 
.hover 
{ 
background-color: Blue; 
color: White; 
} 
</style> 
<script type="text/javascript"> 
$(function(){ 
Jselect($("#txt_wbk"),{ 
bindid:'txt_wbk', //可绑定到按钮上,此处为点击文本框显示下拉框 
hoverclass:'hover', 
optionsbind:function(){return hqhtml();} 
}); 
}) 
function hqhtml(){//此处可在数据库中取值后拼接html,注意:预选项加上 lang='checked'属性 
var optionshtml="<table style='width:100%; background-color: Red' cellpadding=\"0\" cellspacing=\"0\" >“ 




+”<tr><td style='width:20px'><input type=\"checkbox\" value='1' /></td><td>第一项</td></tr>" 

  +"<tr><td><input type=\"checkbox\" value='2' lang='checked'/></td><td>第二项</td></tr>" 

 +"<tr><td><input type=\"checkbox\" value='3' /></td><td>第三项</td></tr>" 
+"<tr><td><input type=\"checkbox\" value='4' /></td><td>第四项</td></tr></table>"; 
return optionshtml; 
} 
</script> 
<div> 
<input id="txt_wbk" type="text" style="width: 200px;" />下拉框测试 
</div>
Javascript 相关文章推荐
javascript的onchange事件与jQuery的change()方法比较
Sep 28 Javascript
jquery实现鼠标滑过小图时显示大图的方法
Jan 14 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
Feb 21 Javascript
实例讲解JavaScript中instanceof运算符的用法
Jun 08 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
Mar 21 Javascript
require.js中的define函数详解
Jul 10 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
原生javascript实现连连看游戏
Jan 03 Javascript
JS实现移动端在线签协议功能
Aug 22 Javascript
JavaScript获取页面元素的常用方法详解
Sep 28 Javascript
jquery keypress,keyup,onpropertychange键盘事件
Jun 25 #Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 #Javascript
javascript面向对象编程(一) 实例代码
Jun 25 #Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
Jun 25 #Javascript
jQuery对象和DOM对象使用说明
Jun 25 #Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 #Javascript
浅谈tudou土豆网首页图片延迟加载的效果
Jun 23 #Javascript
You might like
解析php中const与define的应用区别
2013/06/18 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
详解vue-cli3使用
2018/08/14 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
Python单例模式实例详解
2017/03/01 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python如何生成网页验证码
2018/07/28 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
基于python实现对文件进行切分行
2020/04/26 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
python中封包建立过程实例
2021/02/18 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
工程力学硕士生的自我评价范文
2013/11/16 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
python随机打印成绩排名表
2021/06/23 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python