共同成长
故不积跬步,无以至千里;不积小流,无以成江海。

导航

 

接触 easyui 半年,js学的不深。大神请路过。

直接扩展

  添加方法:

$.extend($.fn.datagrid.methods, {

    getSelectedIndex: function (jq) {//jq这个参数固定,如果需要定义其它参数写到后面
		var rowIndex = -1;
		jq.each(function () {//只取一个,其它不管。
			var dg = $(this);
			var row = dg.datagrid('getSelected');
			if (row == null) return false;//break;
			  rowIndex = dg.datagrid('getRowIndex', row);
			if (rowIndex == null) rowIndex = -1;
			return false;//break;
		});
		return rowIndex;
	}

 

 

继承的方式

这个比较难,因为,easyui底层的函数参数是混淆的。看不懂代码。

不懂从哪里入手,想到看源码参考。比如 dialog 是从 window 继承过来的。

 

 

init 和 Render是我自己猜的函数名。只是为了帮助理解。

$.fn.dialog   //这个定义 dialog

$.fn.dialog.methods  //写 dialog 自己的函数。

$.fn.dialog.parseOptions  //解析参数

$.fn.dialog.defaults  //dialog 自己的默认定义

 

第一个  $.fn.dialog ,看注释:

 

其它三个块:

其中 $.fn.dialog.methods 只需要知道:添加方法,有一个参数 jq。

好了,大概了解怎么写扩展了吧。

 

在 init 重写事件

            onBeginEdit: function (index, row) { //这个function是 基类datagrid调用的。
                opts.rowEditingIndexes.push(index);
                opts.onBeginEdit.apply(this, [index, row]); //子类选项中的事件处理器调用
            }

  

 

整个类的源码 不懂的怎么上传。

有需要的话加这个群吧:334214995

 

posted on 2016-03-16 17:48  码有钱  阅读(566)  评论(0编辑  收藏  举报