基于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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
Sep 30 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
Aug 13 Javascript
js实现幻灯片效果(基于jquery插件)
Nov 05 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
Dec 13 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 Javascript
jquery中done和then的区别(详解)
Dec 19 jQuery
JS使用栈判断给定字符串是否是回文算法示例
Mar 04 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
Dec 12 Javascript
jquery实现简易验证插件封装
Sep 13 jQuery
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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
php数组总结篇(一)
2008/09/30 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
vue实现购物车小案例
2019/09/27 Javascript
python进阶_浅谈面向对象进阶
2017/08/17 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
青年文明号口号
2014/06/17 职场文书
婚前协议书标准版
2014/10/19 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
MySQL数据库表约束讲解
2022/06/21 MySQL