2011-04-08 103 views
1

我正在动态添加节点到ExtJS TreePanel。我有一个用于打开新面板的节点的dblclick监听器。当我双击节点时,节点会自动崩溃。防止ExtJS treenode崩溃

我不希望节点崩溃时,我双击它。有没有办法阻止这种情况发生?

回答

2

实施beforedblclick事件为Node;那么,无论何时触发事件,请查看该节点是否展开,如果是,则返回false

ExtJS API documentation

beforedblclick:(此节点, Ext.EventObject E)

火灾 双击处理。返回假 取消默认操作。

+0

非常感谢它的工作! – mayan 2011-04-09 08:40:49

0

我觉得默认的TreePanel中有一个默认的监听器“的onclick”,这回应一样:

if(node == 'open') { 
    closeNode(); 
} 
else { 
    openNode(); 
} 

所以双击会先打开它的第一次点击,然后关闭它在第二。

您应该添加监听到TreePanel中的像这样:

new Ext.tree.AsyncTreeNode({ 
       expanded: true, 
       children: [{ 
        text: 'Menu Option 1', 
        leaf: true 
       }, { 
        text: 'Menu Option 2', 
        leaf: true 
       }, { 
        text: 'Menu Option 3', 
        leaf: true 
       }] 
      }), 
      rootVisible: false, 
      listeners: { 
       click: function(n) { 
        return false; 
       }, 
       dblclick: function(n) { 
        Ext.Msg.alert('Navigation Tree Click', 
         'You clicked: "' + n.attributes.text + '"'); 
       } 
      } 
0

在树格(树面板,多列),这为我做(ExtJS6)的情况下:

listeners: { 
    beforecelldblclick: function(){ 
     return false; 
    } 
}