/**
* jQuery ligerUI 1.2.0
*
* http://ligerui.com
*
* Author daomi 2013 [ gd_star@163.com ]
*
*/
(function ($)
{
//ligerui 继承方法
Function.prototype.ligerExtend = function (parent, overrides)
{
if (typeof parent != 'function') return this;
//保存对父类的引用
this.base = parent.prototype;
this.base.constructor = parent;
//继承
var f = function () { };
f.prototype = parent.prototype;
this.prototype = new f();
this.prototype.constructor = this;
//附加属性方法
if (overrides) $.extend(this.prototype, overrides);
};
//延时加载
Function.prototype.ligerDefer = function (o, defer, args)
{
var fn = this;
return setTimeout(function () { fn.apply(o, args || []); }, defer);
};
// 核心对象
window.liger = $.ligerui = {
version: 'V1.2.0',
managerCount: 0,
//组件管理器池
managers: {},
managerIdPrev: 'ligerui',
//管理器id已经存在时自动创建新的
autoNewId : true,
//错误提示
error: {
managerIsExist: '管理器id已经存在'
},
pluginPrev: 'liger',
getId: function (prev)
{
prev = prev || this.managerIdPrev;
var id = prev + (1000 + this.managerCount);
this.managerCount++;
return id;
},
add: function (manager)
{
if (arguments.length == 2)
{
var m = arguments[1];
m.id = m.id || m.options.id || arguments[0].id;
this.addManager(m);
return;
}
if (!manager.id) manager.id = this.getId(manager.__idPrev());
if (this.managers[manager.id]) manager.id = this.getId(manager.__idPrev());
if (this.managers[manager.id]) {
throw new Error(this.error.managerIsExist);
}
this.managers[manager.id] = manager;
},
remove: function (arg)
{
if (typeof arg == "string" || typeof arg == "number")
{
delete liger.managers[arg];
}
else if (typeof arg == "object")
{
if (arg instanceof liger.core.Component)
{
delete liger.managers[arg.id];
}
else
{
if (!$(arg).attr(this.idAttrName)) return false;
delete liger.managers[$(arg).attr(this.idAttrName)];
}
}
},
//获取ligerui对象
//1,传入ligerui ID
//2,传入Dom Object
get: function (arg, idAttrName)
{
idAttrName = idAttrName || "ligeruiid";
if (typeof arg == "string" || typeof arg == "number")
{
return liger.managers[arg];
}
else if (typeof arg == "object")
{
var domObj = arg.length ? arg[0] : arg;
var id = domObj[idAttrName] || $(domObj).attr(idAttrName);
if (!id) return null;
return liger.managers[id];
}
return null;
},
//根据类型查找某一个对象
find: function (type)
{
var arr = [];
for (var id in this.managers)
{
var manager = this.managers[id];
if (type instanceof Function)
{
if (manager instanceof type)
{
arr.push(manager);
}
}
else if (type instanceof Array)
{
if ($.inArray(manager.__getType(), type) != -1)
{
arr.push(manager);
}
}
else
{
if (manager.__getType() == type)
{
arr.push(manager);
}
}
}
return arr;
},
//$.fn.liger{Plugin} 和 $.fn.ligerGet{Plugin}Manager
//会调用这个方法,并传入作用域(this)
//@parm [plugin] 插件名
//@parm [args] 参数(数组)
//@parm [ext] 扩展参数,定义命名空间或者id属性名
run: function (plugin, args, ext)
{
if (!plugin) return;
ext = $.extend({
defaultsNamespace: 'ligerDefaults',
methodsNamespace: 'ligerMethods',
controlNamespace: 'controls',
idAttrName: 'ligeruiid',
isStatic: false,
hasElement: true, //是否拥有element主体(比如drag、resizable等辅助性插件就不拥有)
propertyToElemnt: null //链接到element的属性名
}, ext || {});
plugin = plugin.replace(/^ligerGet/, '');
plugin = plugin.replace(/^liger/, '');
if (this == null || this == window || ext.isStatic)
{
if (!liger.plugins[plugin])
{
liger.plugins[plugin] = {
fn: $[liger.pluginPrev + plugin],
isStatic: true
};
}
return new $.ligerui[ext.controlNamespace][plugin]($.extend({}, $[ext.defaultsNamespace][plugin] || {}, $[ext.defaultsNamespace][plugin + 'String'] || {}, args.length > 0 ? args[0] : {}));
}
if (!liger.plugins[plugin])
{
liger.plugins[plugin] = {
fn: $.fn[liger.pluginPrev + plugin],
isStatic: false
};
}
if (/Manager$/.test(plugin)) return liger.get(this, ext.idAttrName);
this.each(function ()
{
if (this[ext.idAttrName] || $(this).attr(ext.idAttrName))
{
var manager = liger.get(this[ext.idAttrName] || $(this).attr(ext.idAttrName));
if (manager && args.length > 0) manager.set(args[0]);
//已经执行过
return;
}
if (args.length >= 1 && typeof args[0] == 'string') return;
//只要第一个参数不是string类型,都执行组件的实例化工作
var options = args.length > 0 ? args[0] : null;
var p = $.extend({}, $[ext.defaultsNamespace][plugin], $[ext.defaultsNamespace][plugin + 'String'], options);
if (ext.propertyToElemnt) p[ext.propertyToElemnt] = this;
if (ext.hasElement)
{
new $.ligerui[ext.controlNamespace][plugin](this, p);
}
else
{
new $.ligerui[ext.controlNamespace][plugin](p);
}
});
if (this.length == 0) return null;
if (args.length == 0) return liger.get(this, ext.idAttrName);
if (typeof args[0] == 'object') return liger.get(this, ext.idAttrName);
if (typeof args[0] == 'string')
{
var manager = liger.get(this, ext.idAttrName);
if (manager == null) return;
if (args[0] == "option")
{
if (args.length == 2)
return manager.get(args[1]); //manager get
else if (args.length >= 3)
return manager.set(args[1], args[
leifu123
- 粉丝: 2
- 资源: 5
最新资源
- 手机组态软件 APP监控西门子S7-1200 PLC C#全套源代码 1,C#开发上位机手机APP,自己写的程序可提供部分 2,通过VS2019开发安卓手机app 3,全套源代码,admin ,1
- 该算法 转速环采用广义预测控制和扩展状态观测器作为前馈叠加输出为给定转矩 给定转矩经过牛顿迭代法数值求解得到dq电流 仿真表明具有良好的调速性能 和抗干扰能力
- MATLB Simulink仿真平台直流微电网并网运行控制策略 包括风机(MPPT)、光伏(MPPT)、蓄电池、直流负载、交流负载、并网逆变器及电网 并网逆变器采用电流下垂控制,锁相环、风机和光伏MP
- 前端分析-2023071100789
- BLDC无刷直流电机和PMSM永磁同步电机源码,原理图 基于STM32F1的有传感器和无传感驱动 直流无刷电机有传感器和无传感驱动程序, 无传感的实现是基于反电动势过零点实现的,有传感的霍尔实现 永
- matlab程序,基于粒子群优化算法的综合能源系统优化调度,考虑了冷能和电能 主要是夏季优化
- matlab程序,复现,基于改进粒子群算法的混合储能系统容量优化,关键词,超级电容,混合储能,粒子群算法 拿之前问清楚 可以运行看结果,出不 不
- 前端分析-2023071100789
- matlab程序设计,综合能源系统主从博弈复现,综合需求响应,碳交易机制stackelberg博弈,以下已经复现出来了,可以接设计,非原价 拿之前问清楚 可以运行看结果,出不 不
- Level-Shift-CHB-7level-Inverter:基于MATLAB Simulink的级联H桥(CHB)7电平逆变器仿真模型 仿真条件:MATLAB Simulink R2015b
- 冷热电综合能源系统优化调度,设备包含燃气轮机,燃气锅炉,余热锅炉,电制冷机,吸收式制冷机,电转气设备等,采用cplex求解或者粒子群求解 此外,再次基础上还有考虑综合需求响应和碳交易机制的综合能源系
- SEPIC:基于MATLAB Simulink的SEPIC变器仿真模型,包含开环控制和闭环控制两种控制 仿真条件:MATLAB Simulink R2015b
- Buck:基于MATLAB Simulink的Buck变器仿真模型,包含开环控制和闭环控制两种控制 仿真条件:MATLAB Simulink R2015b
- ABC-DQ:基于MATLAB Simulink的三相静止坐标系到两相静止坐标系(Clark变)到两相旋转坐标系变(Park变)的仿真模型 仿真条件:MATLAB Simulink R2015b
- Halcon联合C#开发最新版实用框架 实际项目应用验证过的版本,源码,修改了大量Bug以适合实际项目应用 采用仿Visionpro拖拉流程形式,很适合学习使用,可修改参考用于项目 注:软件能够正常
- 三菱FX3U分切机程序,采用三菱伺服的速度与力矩模式,收料采用锥度与恒张力两种控制模式,程序包含锥度计算详细步骤,有模拟量输入输出,有张力检测,有PID调节,是锂电行业分切机通用程序模板
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈