如何为Dojo / Dijit树启用openOnClick并仍然调用onClick函数

时间:2014-09-19 20:24:57

标签: dojo dijit.tree

我希望能够同时选择文件夹节点标签以展开树,同时还调用树的onClick函数。我已经将树的openOnClick属性设置为true,这将使树在选择节点标签时展开,但是从不调用onClick函数。

我的代码看起来像这样......

tree = new Tree({
    model: treeModel,
    openOnClick : true, // This prevents onClick function from firing
    onClick: function(item, node, event){
      // this function is never called because openOnClick is enabled
      alert("This message will never appear");  
    },
}, "tree");

我需要openOnClick和onClick才能工作。我正在使用dojo 1.9

任何想法???

1 个答案:

答案 0 :(得分:1)

在挖掘dijit / Tree.js源代码之后,我提出了解决方案。

tree = new Tree({
    model: treeModel,
    // openOnClick : false, // Don't set openOnClick equal to true
    onClick: function(item, node, event){
      alert("This message will NOW appear!!!");
      this._onExpandoClick({node: node}); // This will expand the node
    },
}, "tree");

Tree.js文件中的逻辑检查openOnClick值,并根据其值扩展节点或调用onClick函数。我还不确定为什么这两个功能相互排斥。

有谁知道这是为什么?