基于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 相关文章推荐
Extjs4 关于Store的一些操作(加载/回调/添加)
Apr 18 Javascript
javascript 表格内容排序 简单操作示例代码
Jan 03 Javascript
JavaScript开发人员的10个关键习惯小结
Dec 05 Javascript
jquery背景跟随鼠标滑动导航
Nov 20 Javascript
javascript实现PC网页里的拖拽效果
Mar 14 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
Apr 20 Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 Javascript
详解vue开发中调用微信jssdk的问题
Apr 16 Javascript
js+html实现点名系统功能
Nov 05 Javascript
js实现飞机大战游戏
Aug 26 Javascript
快速解决element的autofocus失效问题
Sep 08 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上传文件,创建递归目录的实例代码
2013/10/18 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
python实现大文本文件分割
2019/07/22 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
幼儿园教师演讲稿
2014/05/06 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
我的收音机情缘
2022/04/05 无线电