bui.extend Class
插件扩展, 创建的插件会有统一的方法及事件参数, 可以在插件内部使用.
Constructor
bui.extend
(
-
option
Parameters:
-
option
Object注册的参数
-
name
String插件名称
-
config
Object插件参数
-
callback
Function插件的回调
-
Example:
bui.extend({
name:"accordion",
config: {
id: "",
handle: "dt",
target: "dd",
targetHeight: 0,
single: false,
autoinit: true,
callback: null
},
callback:function(option){
// 获取父级的对象,该对象有以下公共方法
var that = this;
that.widget
that.destroy;
that.on;
that.off;
that.trigger;
// 控件的初始化
function inited(){
// 链式调用
return that
}
// 抛出对应的方法, 不能为以下方法或属性:
init, option, config, widgets, widget, reinit, destroy, handle, on, off, trigger, initStatus, reInitStatus, emitter, prefix, showLog
that.inited = inited;
// 执行一次初始化
inited();
// 返回才能拿到对应的方法
return that;
}
})
var uiaccordion = bui.accordion({
id: ""
});
Methods
destroy
(
-
[callback] [ 销毁后做什么]
插件的公共方法,销毁控件.
Parameters:
-
[callback] [ 销毁后做什么]
Function optional
Example:
插件内部使用:
// 插件内部要销毁的东西, 比方 定时器,事件绑定, 外部是不知道的, 所以要内部处理
that.beforeDestroy = function(){
}
实例的销毁:
var accordion = bui.accordion();
// 调用这个方法前, 会先执行 beforeDestroy.
accordion.destroy();
init
()
[控件的初始化]
Example:
//初始化生命周期,默认已经初始化1次
var accordion = bui.accordion();
// 执行多一次初始化
accordion.init();
option
(
-
[key] [ 获取依赖的时候]
-
[value] [ 获取依赖的时候]
外部统一的修改获取参数, 修改this.config 的参数, 并且重新调用 init 方法.
Parameters:
-
[key] [ 获取依赖的时候]
String | Object optional -
[value] [ 获取依赖的时候]
String optional
Example:
比方初始化了插件:
var accordion = bui.accordion();
// 实例获取参数
accordion.option("id");
// 修改一个参数
accordion.option("height",500);
// 修改多个参数
accordion.option({"height":500,handle:".bui-btn-test"});
prefix
(
String
-
[str] [ 去除前缀以后的值]
处理样式的前缀.
Parameters:
-
[str] [ 去除前缀以后的值]
String optional
Returns:
String:
[ 出现问题的位置 ]
Example:
var className = that.prefix("accordion");
// bui-accordion
reinit
()
插件的公共方法,重新初始化.
Example:
实例:
var accordion = bui.accordion();
// 重新初始化
accordion.reinit();
showLog
(
-
[str] [ 日志说明, try{}catche(e){ that.showLog(e) }]
-
[where] [ 出现问题的位置]
插件内部统一的抛出日志方法.
Parameters:
-
[str] [ 日志说明, try{}catche(e){ that.showLog(e) }]
String | Object optional -
[where] [ 出现问题的位置]
String optional
Example:
// 抛出异常, 在bui.accordion init 方法
that.showLog("初始化错误","bui.accordion init")
// 支持对象
try{}catche(e){ that.showLog(e) }
widget
(
-
[name] [ 获取依赖的时候]
实例的公共方法, 获取插件里面的实例,
Parameters:
-
[name] [ 获取依赖的时候]
String optional
Example:
插件内部使用 that.widgets.loading = bui.loading(); 初始化, 实例才能通过widget方法获取得到内部依赖.
比方初始化了插件:
var accordion = bui.accordion();
// 实例获取依赖
accordion.widget("loading");
Events
off
为控件取消绑定事件
Event Payload:
-
[type] [ 事件类型: "show"(显示目标时) | "hide"(隐藏目标时)]
String optional -
[callback] [ 绑定的事件, this 为当前点击的菜单]
Function optional
Example:
that.off("show");
on
为控件绑定事件
Event Payload:
-
[type] [ 事件类型: "show"(显示目标时) | "hide"(隐藏目标时)]
String optional -
[callback] [ 绑定的事件, this 为当前点击的菜单]
Function optional
Example:
that.on("show",function () {
// 点击的菜单
console.log(this);
});
trigger
触发自定义事件
Event Payload:
-
[type] [ 自定义事件名称]
String optional -
[arguments] [ 需要传给自定义事件的参数,可以有多个]
String | Object | Number optional
Example:
$("#id").click(function (e) {
that.trigger("show",e);
})