[ExtJS4] TreePanel 取消默认双击事件行为:展开折叠菜单
想单击展开菜单的效果与默认双击事件重复, 导致点击过快时, 出现重复菜单项.
为避免此问题且得到更好的用户体验, 需要取消TreePanel 默认双击事件行为.
treepanel.on('itemclick', function(treeview, record, item, index, e, opts) {
/** 取消双击展开折叠菜单行为 */
treeview.toggleOnDblClick = false;
if (record.get('leaf')) {
var moduleId = record.get('id');
application.loadModule(moduleId);
var module = application.getController(moduleId);
/**
* @tip
* 一个控制器第一个视图为模块主功能视图
*/
var viewName = module.views[0];
var view = module.getView(viewName);
/***
* 视图结构: 目录为模块包名, 目录内文件为模块名, 视图类型为小写的模块名.
* @example
* App.viw.theme.Theme
* alias : 'widget.theme'
*
* viewType: theme
*/
var viewType = viewName.split('.')[1].toLowerCase();
/**
* 如果没有此视图, 创建视图.
*/
if (!tabpanel.down(viewType)) {
var panel = view.create();
tabpanel.add(panel);
tabpanel.setActiveTab(panel);
panel.doLayout();
}
/**
* 如果有此视图, 刷新视图.
*/
else {
var panel = tabpanel.down(viewType);
tabpanel.setActiveTab(panel);
panel.doLayout();
}
} else {
treeview.toggle(record);
}
});
分享到:
相关推荐
7. **expandOnDblClick**: 是否在双击节点时展开或折叠。 8. **singleExpand**: 是否允许一次仅展开一个父节点。 9. **loadMask**: 是否在加载数据时显示遮罩层,提供更好的用户体验。 TreePanel还支持多种事件,...
TreePanel是一个可配置的组件,可以设置各种属性,如节点的样式、展开/折叠行为、拖放功能等。它使用TreeStore来存储和管理数据,而TreeStore可以通过Ajax proxy与服务器进行通信,获取JSON格式的树数据。 **Ajax...
- **expandOnDblClick**:双击节点时的行为,是否展开或关闭。 4. **节点操作** - **添加、删除和移动节点**:通过store的方法来实现,如`insertChild`,`removeChild`,`appendChild`等。 - **展开与折叠节点*...
ExtJS Tree的核心功能包括节点的增删改查、展开与折叠、拖放操作以及丰富的事件处理机制。 1. **基本概念** - **TreeNode**: 树形结构的基本单元,代表树中的一个节点,包含了文本、图标、子节点等信息。 - **...