最近项目中用到了easyui这个框架,找了一圈也没有找到checkbox list控件,被迫只能自己实现了,为了便于复用,自己封装了下,有需要的,直接拿去用吧。有意见或建议的,欢迎指教啊。

调用示例

<html>
<head>
<title></title>
<meta charset='utf8'>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.checkbox.js"></script>
</head>
<body>
<div class='easyui-checkbox' id='test'>
</div>
<div id='showValues'></div>
<div>
<input type='button' id='btnGetValue' value='获取选中值'>
</div> <script type="text/javascript">
$().ready(function function_name (argument) {
//初始化传值
/*$('#test').checkbox({data:[
{text:'星期天',value:'1'},
{text:'星期一',value:'2'},
{text:'星期二',value:'3'}
]});*/
//初始化
$('#test').checkbox();
//setValue设置checkbox项
$('#test').checkbox('setValue',[
{text:'星期天',value:'1'},
{text:'星期一',value:'2'},
{text:'星期二',value:'3'}
]);
//checked设置默认选中项
$('#test').checkbox('checked',['2']); $('#btnGetValue').on('click',function(){
//getValue获取已选择的checkbox项的值
var checked=$('#test').checkbox('getValue'); $('#showValues').html('');
$('#showValues').html(checked.join(','));
});
});
</script>
</body>
</html>

实现源码 jquery.checkbox.js

 (function ($) {
function createBox(me, options) {
me.html(''); if(options.data){
$.each(options.data,function(index,item){
me.append('<input type="checkbox" value="'+item.value+'"/>'+item.text);
});
registerEvent(me);
}
} function registerEvent(me){
$(me).children().on('click',function(){
if($(this).attr('checked')){
$(this).removeAttr('checked');
}else{
$(this).attr('checked','checked');
}
});
} $.fn.checkbox = function(options, param){
if (typeof options == 'string'){
var method = $.fn.checkbox.methods[options]; if (method){
return method(this, param);
} else {
return this.combo(options, param);
}
} options = options || {};
createBox(this,options);
}; $.fn.checkbox.methods={
setValue:function(me,para){
me.html(''); createBox(me,{data:para});
},
getValue:function(me,para){
var values=new Array(); $(me).children().each(function(index,item){
if($(item).attr('checked')=='checked'){
values.push($(item).attr('value'));
}
}); return values;
},
checked:function(me,para){
$(me).children().each(function(index,item){
if (para.indexOf($(item).attr('value')) > -1) {
if ($(item).attr('checked') != 'checked') {
$(item).click();
}
} else {
$(item).removeAttr('checked');
}
});
}
};
})(jQuery);

自己动手写easyui的checkbox的更多相关文章

  1. 【原创】自己动手写控件----XSmartNote控件

    一.前面的话 在上一篇博文自己动手写工具----XSmartNote [Beta 3.0]中,用到了若干个自定义控件,其中包含用于显示Note内容的简单的Label扩展控件,用于展示标签内容的labe ...

  2. 【原创】自己动手写工具----XSmartNote [Beta 3.0]

    一.前面的话 在动笔之前,一直很纠结到底要不要继续完成这个工具,因为上次给它码代码还是一年多之前的事情,参考自己动手写工具----XSmartNote [Beta 2.0],这篇博文里,很多园友提出了 ...

  3. 【原创】自己动手写工具----XSmartNote [Beta 2.0]

    一.前面的话 在上一篇自己动手写工具----XSmartNote中,我简单介绍了这个小玩意儿的大致界面和要实现的功能,看了一下园子里的评论,评价褒贬不一,有人说“现在那么多云笔记的工具”,“极简版ev ...

  4. 【原创】自己动手写工具----签到器[Beta 2.0]

    一.前面的话 上一篇中基本实现了简单的签到任务,但是不够灵活.在上一篇自己动手写工具----签到器的结尾中,我设想了几个新增功能来提高工具的灵活程度,下面把新增功能点列出来看看: (1)新增其他的进程 ...

  5. 自己动手写ORM的感受

    之前看到奋斗前辈和时不我待前辈的自己动手写ORM系列博客,感觉讲解的通俗易懂,清晰透彻.作为一个菜鸟,闲来也想着自己写一个ORM,一来加深自己对 ORM的理解,以求对EF,NHibernate等ROM ...

  6. 自己动手写插件底层篇—基于jquery移动插件实现

    序言 本章作为自己动手写插件的第一篇文章,会尽可能的详细描述一些实现的方式和预备知识的讲解,随着知识点积累的一点点深入,可能到了后期讲解也会有所跳跃.所以,希望知识点不是很扎实的读者或者是初学者,不要 ...

  7. Python - 动手写个ORM

    Python - 动手写个ORM 任务: 模拟简单的ORM - Object Relational Mapping 为model添加create方法 代码很简单,直接上 字段类型类 class Fie ...

  8. 【转】自己动手写SC语言编译器

    自序 编译原理与技术的一整套理论在整个计算机科学领域占有相当重要的地位,学习它对程序设计人员有很大的帮助.我们考究历史会发现那些人人称颂的程序设 计大师都是编译领域的高手,像写出BASIC语言的BIL ...

  9. 自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明

    将陆续上传新书<自己动手写CPU>,今天是第47篇. 9.7 ll.sc指令实现思路 9.7.1 实现思路 这2条指令都涉及到訪问链接状态位LLbit,能够将LLbit当做寄存器处理,ll ...

随机推荐

  1. jquery mobile listview列表属性(搜索自动填充检索效果)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  2. 初涉JavaScript模式 (9) : 函数 【常用方式】

    回调模式 上一篇,对JavaScript函数进行了大体的介绍,这一篇对一些在工作中经常遇到的情况进行扩展. 在工作中,我们经常遇到很多需求,比如现在有一个需求: 一栋10层的大楼,当我们在坐电梯时,电 ...

  3. javascript获得浏览器工作区域的大小

    浏览器的窗口发生变化时会执行window.onresize方法,通过这个方法我们可以获得到浏览器工作区域的大小: window.onresize=function(){ bodyHeight = wi ...

  4. HTML cellpadding与cellspacing属性

    单元格(cell) -- 表格的内容 单元格边距(表格填充)(cellpadding) -- 代表单元格外面的一个距离,用于隔开单元格与单元格空间 单元格间距(表格间距)(cellspacing) - ...

  5. IE6不完全支持!important

    !important !important是CSS1中定义的语法,作用是提高指定样式规则的应用优先权.语法格式如:.demo{color:red !important;} IE6支持重定义的!impo ...

  6. 002-C语言概览

    C语言 关键字: 32个关键字,全是小写 auto double int struct break else long switch case enum register typedef char e ...

  7. IOS 性能优化的建议和技巧

    IOS 性能优化的建议和技巧 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelo ...

  8. Cracking the coding interview--Q2.3

    Implement an algorithm to delete a node in the middle of a singly linked list,given only access to t ...

  9. 查看堵塞的SQL

    SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.t ...

  10. POJ3267 The Cow Lexicon(dp)

    题目链接. 分析: dp[i]表示母串从第i位起始的后缀所对应的最少去掉字母数. dp[i] = min(dp[i+res]+res-strlen(pa[j])); 其中res 为从第 i 位开始匹配 ...