未能捕获dijit.Tree“onclick”

时间:2011-04-27 22:42:56

标签: treeview dojo dijit.tree

我已经阅读了几个处理onClick for dijit.Tree的例子..特别是这个似乎告诉了我所需要的一切:dojo how to override dijit class method

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

以下是代码:

<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时,“我的代码在这里”部分会被调用,但是当我在节点上锁定时,它永远不会被调用...

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

此致 布赖恩

1 个答案:

答案 0 :(得分:-1)

是否需要将连接放在dojo.ready()中?也许这就是它在启动时调用的原因?

看着dijit.Tree来源,我看到onClick有两个args 这就是我在成功捕获onClicks时所使用的:

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

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

然后在我使用programmatic approach

创建树的同一个函数中
dojo.connect( tree,"onClick", function(/*dojo.data*/ item, /*TreeNode*/ nodeWidget){
    //my code
});