您的位置:首页 > Web前端 > JQuery

jquery 扩展方法

2015-11-11 19:43 741 查看
有时候写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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: