基于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 相关文章推荐
JQUERY的属性选择符和自定义选择符使用方法(二)
Apr 07 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
Sep 22 Javascript
Javascript仿PHP $_GET获取URL中的参数
May 12 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
Aug 18 Javascript
JS通过ajax动态读取xml文件内容的方法
Mar 24 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
AngularJS基础 ng-selected 指令简单示例
Aug 03 Javascript
浅谈Node.js之异步流控制
Oct 25 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
使用taro开发微信小程序遇到的坑总结
Apr 08 Javascript
vue Element左侧无限级菜单实现
Jun 10 Javascript
JS绘图Flot如何实现可选显示曲线图功能
Oct 16 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
Redis构建分布式锁
2017/03/28 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
浅析TypeScript 命名空间
2020/03/19 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
vue的webcamjs集成方式
2020/11/16 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
Python实现处理管道的方法
2015/06/04 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
法国时尚童装网站:Melijoe
2016/08/10 全球购物
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
买房委托公证书
2014/04/08 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
计划生育汇报材料
2014/12/26 职场文书
追悼会家属答谢词
2015/09/29 职场文书