2011-04-27 59 views
0

我讀過的處理的onClick爲dijit.Tree ..尤其是幾個例子這一次似乎要告訴我,我需要:dojo how to override dijit class method失敗陷阱dijit.Tree「點擊」

但是,由於某種原因,我處理程序在我的頁面首次加載時被調用,並且從不在我點擊樹節點時?

下面的代碼:

<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

是把dojo.ready內部連接()需要它?也許這就是爲什麼它在啓動時被調用?

望着dijit.Tree源,我看到的onClick有有兩個參數 這是我在我的情況下成功地用於捕捉onClicks:

在樹的構造函數添加openOnClick:假:

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

然後在我創建一個使用programmatic approach

dojo.connect(tree,"onClick", function(/*dojo.data*/ item, /*TreeNode*/ nodeWidget){ 
    //my code 
}); 
樹同樣的功能