jquery 扩展方法

本文介绍了一种通过jQuery的$.extend()方法封装通用功能的方式,以此减少代码冗余并提高加载效率。作者通过实例展示了如何创建和调用这些扩展方法。

有时候写js的时候,会发现有很多相同方法,那另外的js文件也要用到这个方法的时候,第一想法就是把那个方法copy到另外的js里面去,这样就会多出很多这个方法, 会显得代码很多很沉重而导致js加载的时候,会慢很多,那有没有办法像java那样自己封装成一个工具类,那里需要用到这个方法,就直接导入调用就行了呢??答案是有的,jquery有一个扩展的函数,就是$.extend({});,这个方法可以把一些常用的方法写进去,供调用使用,下面是例子,本人也是一个新人,每天都在给那些技术牛的大牛虐待,希望平时转载的文章和原创的文章可以帮广大的新人。。。。。。

<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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值