jquery 扩展方法
2015-11-11 19:43
741 查看
有时候写js的时候,会发现有很多相同方法,那另外的js文件也要用到这个方法的时候,第一想法就是把那个方法copy到另外的js里面去,这样就会多出很多这个方法, 会显得代码很多很沉重而导致js加载的时候,会慢很多,那有没有办法像java那样自己封装成一个工具类,那里需要用到这个方法,就直接导入调用就行了呢??答案是有的,jquery有一个扩展的函数,就是$.extend({});,这个方法可以把一些常用的方法写进去,供调用使用,下面是例子,本人也是一个新人,每天都在给那些技术牛的大牛虐待,希望平时转载的文章和原创的文章可以帮广大的新人。。。。。。
上面的是jquery的扩展方法,只要调用的时候,传参和传对象过去就行了.........
下面就调用方法
<pre name="code" class="javascript">$.extend({ transfer : { /** * 移动数据 * @param left * @param right */ transferData: function(left, right) { var leftmObj = $('#' + left); var rightObj = $('#' + right); var rows = leftmObj.datagrid('getSelections');//左边datagid选中的行 //先要判断,是否为已选学生 var rowsSelected = rightObj.datagrid('getSelections'); var rowsLength = rightObj.datagrid('getRows'); if (rowsLength.length == 0) { for (var m = 0; m <= rows.length - 1; m++) { rightObj.datagrid("appendRow", rows[m]); rightObj.propertygrid('acceptChanges'); } } else { var flag = true;//不相等 for (var i = 0; i <= rows.length - 1; i++) {//未选择 for (var j = 0; j <= rowsLength.length - 1; j++) {//已选择 if (rows[i].id == rowsLength[j].id) { flag = false;//相等 break; } else { flag = true; } }//j End if (flag == true) { rightObj.datagrid("appendRow", rows[i]); rightObj.propertygrid('acceptChanges'); } }//iend } }, /** * 清空左边选择的门店datagrid数据 * @param dg */ cleanLeftData: function(dg) { if($.fast.isNotEmpty(dg)){ var item = $(dg).datagrid('getSelections'); if ($.fast.isNotEmpty(item)) { for (var i = item.length - 1; i >= 0; i--) { var index = $(dg).datagrid('getRowIndex', item[i]); $(dg).datagrid('deleteRow', index); } } } }, /** * 存储数据 * @param json * @param right */ arrayStorager: function(json, right) { var array = $(json).val(); if($.fast.isNotEmpty(array)) { var array = $.parseJSON(array); for (var i = 0; i <= array.length - 1; i++) { var id = array[i].id; if($.fast.isNotEmpty(id)){ $(right).datagrid("appendRow", array[i]); } } } } } });
上面的是jquery的扩展方法,只要调用的时候,传参和传对象过去就行了.........
下面就调用方法
<script type="text/javascript"> $(function(){ $.transfer.arrayStorager($("#bindAdminJson"), $("#been_elected_list")); ------------------》这是调用的方法 }); //移动门店数据 function transferDataMethod(all_admin_list, been_elected_list) { $.transfer.transferData(all_admin_list, been_elected_list); } //清空右边选择的门店datagrid数据 function cleanSelectData() { $.transfer.cleanLeftData($('#been_elected_list')); ------------------》这是调用的方法 } </script>
相关文章推荐
- How to format a JavaScript date(jquery ,json ,日期)
- jquery获取屏幕尺寸方法
- 用纯JavaScript替代jQuery的技巧
- jquery实现当页面滚动超过一屏时显示返回顶部按钮
- AJAX+json+jquery实现预加载瀑布流布局
- JQuery 限制文本框只能输入数字和小数点
- jQuery对象长度size
- jquery 中ajax的使用
- jQuery.form提交复杂表单
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——一些有用的Sizzle API
- jquery 追加table
- jQuery通过滚轮滚动动态加载图片
- 多个jquery冲突
- 用jQuery.form实现批量输入控件的提交
- 35 个 jQuery 小技巧
- Rails项目中使用jQuery操作session
- jquery on事件jquery on实现绑定多个事件
- IE7下不支持jquery.attr("onclick","function(){}"),
- 配置JQuery与其它库的兼容性
- 很多人想要的Jquery 加载Loading效果,可以加到自己的项目中,结合Ajax使用