Dojo Скрыть и показать Divs

Я сделал несколько поисков и придумал много смешанных результатов для использования Dojo для переключения divs, показывающих vs hidden.

  • Некоторые используют dojo.style, который, по-видимому, был заменен на dojo.fx
  • Некоторые используют dijit, но не могут получить доступ к DOM node.
  • Некоторые используют show() и hide()
  • Некоторые изменения CSS

Кажется, я не могу заставить их работать.

Может кто-нибудь, пожалуйста, назовите меня в отношении современной walkthru на этом.


решаемые

Используется комбинация следующих...

dojo.addOnLoad(function() {
      dojo.style(dojo.byId('myDiv'), "display", "none");
});

и переключить его

function toggleDivs(){
    if(   dojo.style(dojo.byId('myDiv'), "display") == "none"){
        dojo.style(dojo.byId('myDiv'), "display", "block");
        dojo.style(dojo.byId('myDiv2'), "display", "none");
    } else {
        dojo.style(dojo.byId('myDiv'), "display", "none");
        dojo.style(dojo.byId('myDiv2'), "display", "block");
    }
}

Ответы

Ответ 1

Почему вы не используете dojo.fx.Toggler?

var toggler = new dojo.fx.Toggler({

        node: "basicNode"

    });

    dojo.connect(dijit.byId("showButton"), "onClick", toggler, "show");
    dojo.connect(dijit.byId("hideButton"), "onClick", toggler, "hide");
}`

Из dojo reference-guide:

Функции Toggler.show() и Toggler.hide() возвращают объект анимации для анимации в игре. Этот объект можно использовать для остановки, паузы, установки текущего процента местоположения анимации и получения статуса анимации.

Ответ 2

Для справки, в dojo 1.7 и выше определение немного отличается (из-за загрузчика AMD). См. Третий пример в dojo справочном руководстве.

Код в основном:

require(["dojo/fx/Toggler", "dojo/fx", "dojo/dom", "dojo/on", "dojo/domReady!"],
function(Toggler, coreFx, dom, on){
  var toggler = new Toggler({
    node: "toggle-id",
    showFunc: coreFx.wipeIn,
    hideFunc: coreFx.wipeOut
  });
  on(dom.byId("hideButton"), "click", function(e){
    toggler.hide();
  });
  on(dom.byId("showButton"), "click", function(e){
    toggler.show();
  });
});

где showFunc и hideFunc - это пользовательские функции анимации, которые не только отображают/скрывают node, но также расширяют/сворачивают их высоту. Обратите внимание, что при отображении/скрытии виджета dijit идентификатор переключения должен быть родителем идентификатора виджета, например:

<div id="toggle-id"><div id="textarea-id"></div></div>

где textarea-id - это идентификатор, передаваемый как srcNodeRef при создании виджета dijit, такого как ComboBox или TextArea, с оператором new (см. "toggle-id" в примере кода выше).