`

[ExtJS4] TreePanel 取消默认双击事件行为:展开折叠菜单

阅读更多
[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);
						            }
								});
 
分享到:
评论

相关推荐

    ExtJs TreePanel应用

    7. **expandOnDblClick**: 是否在双击节点时展开或折叠。 8. **singleExpand**: 是否允许一次仅展开一个父节点。 9. **loadMask**: 是否在加载数据时显示遮罩层,提供更好的用户体验。 TreePanel还支持多种事件,...

    tree 动态树 extjs ajax

    TreePanel是一个可配置的组件,可以设置各种属性,如节点的样式、展开/折叠行为、拖放功能等。它使用TreeStore来存储和管理数据,而TreeStore可以通过Ajax proxy与服务器进行通信,获取JSON格式的树数据。 **Ajax...

    extjs tree 学习资料

    - **expandOnDblClick**:双击节点时的行为,是否展开或关闭。 4. **节点操作** - **添加、删除和移动节点**:通过store的方法来实现,如`insertChild`,`removeChild`,`appendChild`等。 - **展开与折叠节点*...

    extjs tree

    ExtJS Tree的核心功能包括节点的增删改查、展开与折叠、拖放操作以及丰富的事件处理机制。 1. **基本概念** - **TreeNode**: 树形结构的基本单元,代表树中的一个节点,包含了文本、图标、子节点等信息。 - **...

Global site tag (gtag.js) - Google Analytics