2012-06-28 66 views
-1

我正在使用Struts 2 dojo插件來製作html樹。它生成的樹節點的一些Dojo的HTML代碼Dojo訂閱treenode select

<div dojoType="struts:StrutsTreeNode"  id="2" title="car"> 

我想這個

<script language="JavaScript" type="text/javascript"> 
dojo.event.topic.subscribe("treeSelected", function treeNodeSelected(message) { 

    dojo.io.bind({ 
     url: "<s:url value='../roseindia/objectsList2.action'/>?categoryId="+message.node.title, 
     load: function(type, data, evt) { 
      var divDisplay = dojo.byId("displayIt"); 
      divDisplay.innerHTML=data; 
     }, 
     mimeType: "text/html" 
    }); 

}); 

處理樹節點點擊我可以通過標題(車)爲message.node.title 。我需要通過id不是標題,但哪裏不是屬性message.node.id。

如何在JavaScript函數中訪問id(treenode)?

回答

0

oohhkay,所以你在0.4.3 dojo.version!?即時通訊不知道API如何在舊版本中工作,但最簡單的當前api鉤子是onClick。

我記得,有tree.onClick覆蓋您將得到itemTreeNode,均爲對象,其中產品的參考,您的商店的JSON數據和樹節點是當前點擊行(來dijit小部件,這意味着你應該有.getChildren,.domNode等)。

所以在代碼方面,儘量

<div dojoType="struts:StrutsTreeNode"  id="2" title="car"> 
    <script type="dojo/method" event="onClick" args="item, treeNode"> 
    alert(treeNode.id); 
    alert(treeNode.domNode.tagName); 
    alert(treeNode.domNode.innerHTML.substr(0,30); 
    </script> 
</div> 
+0

看到http://grokbase.com/t/dojo/dojo-interest/101adyfyan/adding-onclick-event-for-folder-nodes-in- a-dijit-tree – mschr

+0

謝謝你的回答。是0.4.3舊版本。我決定不要使用這個插件與舊的dojo版本。現在我正在嘗試使用jquery-treeview。 – sanek

+0

yuk! :)你應該在其新版本中下載dojo toolkit(或使用google cdn)。一旦你理解了dojo並開始使用它的AMD/build特性,它將勝過jquery。它授予你或多或少相同的內核,但有一個更清潔的模塊訪問(它基本上是一個盒子,不必下載,安裝和設置你需要的每個類) – mschr