Получить 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, но мне действительно нравится, как эти панели заголовков выглядят и работают
Спасибо