Получить data-dojo-attachpoint из dijit/titlepane по клику

У меня есть группа диджит / титульных панелей, которые я пытаюсь заставить вести себя как аккордеон (когда кто-то щелкает, другие закрываются). Я смог сделать это, используя событие нажатия панелей в приведенном ниже коде. Проблема в том, что мне нужно назначить идентификаторы на панели, чтобы заставить его работать. Можно ли в любом случае получить данные-dojo-attachpoint панелей по событию click панели? Назначение идентификаторов создает проблемы, потому что виджет нужно создавать несколько раз

Разметка титровальных панелей в виджете:

<div id="P1" data-dojo-attach-point="P1" data-dojo-type="dijit/TitlePane" 
data-dojo-props="title:'1: Step 1', closable:false,  open:false" data-dojo-attach-event="onClick:ClickPane"/>

<div id="P2" data-dojo-attach-point="P2" data-dojo-type="dijit/TitlePane" 
data-dojo-props="title:'2: Step 2', closable:false,  open:false" data-dojo-attach-event="onClick:ClickPane"/>

<div id="P3" data-dojo-attach-point="P3" data-dojo-type="dijit/TitlePane" 
data-dojo-props="title:'3: Step 3', closable:false,  open:false" data-dojo-attach-event="onClick:ClickPane"/>


<div id="P4" data-dojo-attach-point="P4" data-dojo-type="dijit/TitlePane" 
data-dojo-props="title:'4: Step4', closable:false,  open:false" data-dojo-attach-event="onClick:ClickPane"/>

код:

 ClickPane: function (evt) {
            //close all other panes after one has been clicked
            var panesName = ["P1", "P2", "P3", "P4"];//ids
            var panes = [this.P1, this.P2, this.P3, this.P4];
            var pane = evt.currentTarget.id;//id like to be able to grab attachpoint here
            var index = panesName.indexOf(pane);
            if (index > -1) {
                panes.splice(index, 1);
                for (var i = 0; i < panes.length; i++) {
                    panes[i].set("open", false)
                }
            }

        },

Я мог бы использовать аккордеон css, но мне действительно нравится, как эти панели заголовков выглядят и работают

Спасибо

1 ответ

Используется dojox/widget/TitleGroup

работал отлично

Другие вопросы по тегам