基于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 相关文章推荐
js innerHTML 改变div内容的方法
Aug 03 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
Sep 27 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
angularJS实现动态添加,删除div方法
Feb 27 Javascript
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
Jul 21 Javascript
node.js中npm包管理工具用法分析
Feb 14 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 Javascript
Javascript confirm多种使用方法解析
Sep 25 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
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP如何实现跨域
2016/05/30 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
js实现选项卡效果
2020/03/07 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
python字典的常用操作方法小结
2016/05/16 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
学生会干部自我鉴定2014
2014/09/18 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL