基于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实现可输入搜索文字的下拉框
Oct 23 Javascript
JS实现日期加减的方法
Nov 29 Javascript
关于js里的this关键字的理解
Aug 17 Javascript
asp知识整理笔记3(问答模式)
Sep 27 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
Aug 16 Javascript
js实现悬浮窗效果(支持拖动)
Mar 09 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
Jul 27 Javascript
vue项目配置sass及引入外部scss文件
Apr 14 Vue.js
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递归调用与静态变量使用
2012/12/16 PHP
laravel model 两表联查示例
2019/10/24 PHP
js复制到剪切板的实例方法
2013/06/28 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
Python中subprocess模块用法实例详解
2015/05/20 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
python 调用有道api接口的方法
2019/01/03 Python
python数据爬下来保存的位置
2020/02/17 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
机械系大学毕业生推荐信
2013/11/27 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
公益广告标语
2014/06/19 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
三八妇女节标语
2014/10/09 职场文书
法院答辩状格式
2015/05/22 职场文书