Как вызвать функцию, если в контейнере вкладок Dojo выбрана вкладка? - PullRequest
1 голос
/ 30 июня 2011

У меня есть контейнер вкладок с вкладками, которые, в зависимости от того, какая вкладка выбрана, я хотел бы запустить функцию. Я уже создал функцию в Java Script, которая будет либо скрывать, либо отображать окно. Функция работает отлично. Как мне указать вкладки для запуска этой функции? В приведенном ниже коде я показываю на вкладке «Содержимое» функцию с именем «hidediv». У меня также есть функция под названием "showdiv". Я хочу удалить его из содержимого, и он будет запускаться автоматически при выборе вкладки. какие-либо предложения? Я не хочу, чтобы это вообще влияло на содержимое вкладки.
Спасибо!

            <div dojoType="dijit.layout.ContentPane" title="Setup">
            <a href="javascript:hidediv()">Hide div</a> 
            </div>

1 Ответ

3 голосов
/ 30 июня 2011

Это хорошо описано в справочном руководстве .

В принципе, если ваш TabContainer имеет идентификатор "myTabs", вы можете сделать:

dojo.subscribe("myTabs-selectChild", function(selected){
    // Do whatever you need here, hidediv() etc..
    console.log(selected.title);
});

Редактировать: Если вы хотите, чтобы что-то срабатывало только для конкретной вкладки, вы можете проверить заголовок внутри функции:

dojo.subscribe("myTabs-selectChild", function(selected){
    if(selected.title == "Setup")
    {
       hidediv();
    }
});

Возможно, более элегантный способ сделать это - использовать onShow ContentPane.событие, например, так:

<div dojoType="dijit.layout.ContentPane" title="Setup"
     onShow="hidediv">
     <!-- Content -->
</div>
...