/**
* Panel
*
* @file Panel
* @author Brian Li (lbxxlht@163.com)
*/
var define = typeof define === 'function' && define.amd ? define : function (factory) {
typeof module === 'object' ? (module.exports = factory(require)) : '';
};
define(function (require) {
var Controller = require('../core/controller');
var util = require('../core/util');
// public /////////////////////////////////////////////////////////////////
/**
* Panel构造函数
*
* @param {Object} param 初始化参数
* @return {Panel} Panel实例
*/
function Panel(param) {
if (!(this instanceof Panel)) {
return new Panel(param);
}
param = param || {};
// 原始模板
param.tpl = '';
util.appendHandler(param, 'click', mouseHandler);
// 调用父类初始化
Controller.call(this, param);
}
util.inherit(Panel, Controller);
return Panel;
function mouseHandler(e) {
var dom = e.target;
var dataset = util.getDataset(dom);
if (dataset.uiCmd !== 'panel-toggle-button') {
return;
}
var icons = typeof dataset.uiIcons === 'string' ? dataset.uiIcons.split(';') : ['', ''];
var container = $(this.container);
container.find('.panel-content').toggleClass('hidden');
dom.className = container.find('.panel-content').hasClass('hidden') ? icons[1] : icons[0];
}
});
|