Dojo订阅treenode选择

时间:2012-06-28 11:06:35

标签: dojo

我使用Struts 2 dojo插件制作html树。它为树节点

生成一些dojo-html代码
<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而不是title,但不是propertyie message.node.id。

如何在JavaScript函数中访问id(of treenode)?

1 个答案:

答案 0 :(得分:0)

哦oohhkay,所以你处于0.4.3 dojo.version!?我不知道API如何在旧的版本中工作,但最简单的当前api钩子是onClick。

我记得,使用tree.onClick覆盖,您将获得itemTreeNode,两者都是项目引用商店json数据的对象,treenode是当前单击的行(dijit Widget,意思是你应该有.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>