-1

私はStruts2dojoプラグインを使用して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"
    });

});

title(car)をmessage.node.titleとして渡すことができます。タイトルではなくIDを渡す必要がありますが、propertymessage.node.idはどこにありません。

JavaScript関数で(treenodeの)idにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

おっと、あなたは 0.4.3 の dojo.version を使用しています!? その古いバージョンで API がどのように機能するかはわかりませんが、現在の最も単純な API フックは onClick です。

私が思い出したように、tree.onClick オーバーライドを使用すると、 と が取得itemTreeNodeれます。どちらもアイテムがストア json データへの参照であり、treenode が現在クリックされている行です (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>
于 2012-06-28T12:54:04.357 に答える