0

我已经阅读了几个处理 onClick for dijit.Tree 的示例。特别是这个似乎告诉我我需要的一切: dojo 如何覆盖 dijit 类方法

但是,由于某种原因,我的处理程序在我的页面首次加载时被调用,而不是在我单击树节点时被调用?

这是代码:

<div dojoType="dijit.layout.ContentPane" title="Published Blueprints" minSize="20" style="width: 300px;" id="leftAccordion" region="leading" splitter="true">
   <div id="blueprintTree" dojoType="dijit.Tree" store="" query="" label="Blueprints" openOnClick="false">
   </div>
</div>

...然后我这样做...

dojo.ready(function() {
   var tree = dijit.byId("blueprintTree");
   tree.connect(tree, "onClick", function(item) {
       // my code here...
   });
});

...当我启动(调试)我的jsp时,“我的代码”部分被调用,但当我锁定节点时从来没有......

显然我错过了一些简单的东西?

问候布赖恩

4

1 回答 1

-1

是否需要将连接放在 dojo.ready() 中?也许这就是为什么它在启动时被调用?

查看 dijit.Tree 源码,我看到 onClick 有两个 args 这是我在我的案例中用来成功捕获 onClicks 的:

在 Tree 构造函数中添加 openOnClick: false:

var tree = new dijit.Tree( {
        model: myModel,
        openOnClick: false,
                    etc...

然后在我使用编程方法创建树的同一个函数中

dojo.connect( tree,"onClick", function(/*dojo.data*/ item, /*TreeNode*/ nodeWidget){
    //my code
});
于 2011-10-10T15:46:28.190 回答