0

私は Dojo を始めたばかりで、これが私がやろうとしていることです。以下のコードを使用してプログラムで宣言されたタイトルペインがあります。

     var pane = this._createTitlePane(config.widgets.title,  config.widgets.position, 
                 config.widgets.open);

_createTitlePane: function (title, position, open, optclass) {
          var tp = new TitlePane({
            title: title,
            open: open
          }).placeAt(this.sidebar, position);
          domClass.add(tp.domNode, 'titlePaneBottomFix titlePaneRightFix');
          if (optclass) {
            domClass.add(tp.domNode, optclass);
          }
          tp.startup();
          return tp;
        },

後で、esri.hide を使用してボタンをクリックしたときに、このタイトル ペインを非表示にしようとしています。私の質問は、このタイトル ペインへの参照を取得するにはどうすればよいですか? 定義されている場合、ID はありません。Chromeデバッガーを見ると、以下の行がウィジェットを強調表示しているのがわかります

  <div class="titlePaneBottomFix titlePaneRightFix dijitTitlePane" title="" role="group"    id="dijit_TitlePane_1" widgetid="dijit_TitlePane_1">

esri.hide(dojo.byId("dijit_TitlePane_1")) のようなことをしようとすると、ウィジェットが非表示になります。しかし、このウィジェット ID を使用してタイトル ペインを参照できますか?

4

2 に答える 2

1

関数内でタイトル ペインに独自の ID を指定することもできます。

_createTitlePane: function (title, position, open, optclass, paneId) {
      var tp = new TitlePane({
        title: title,
        id: paneId, // TitlePane id here
        open: open
      }).placeAt(this.sidebar, position);
      domClass.add(tp.domNode, 'titlePaneBottomFix titlePaneRightFix');
      if (optclass) {
        domClass.add(tp.domNode, optclass);
      }
      tp.startup();
      return tp;
}  

次に、それを参照して非表示にすることができます:

esri.hide(dijit.byId("theIdYouGaveIt").domNode);

dojo.byId と dijit.byId の違いを理解するには、このリンクが役立つ場合があります。

于 2014-03-14T17:30:18.787 に答える