Archief - Dojo vraagje- events

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

profound

Legacy Member
Klein simpel vraagje;

Code:
<script>
  require([
    "dijit/layout/TabContainer", 
    "dijit/layout/ContentPane", 
    "dojo/dom",
    "dijit/form/Button",
    "dojo/dom-construct",
    "dojo/on",
    "dojo/topic",
    "dojo/domReady!"], 
    function(TabContainer, ContentPane, dom, Button, domConstruct, on, topic){

      //container, pane en button aanmaken
      var tc = new TabContainer({
        style: "height: 100%; width: 100%;"
      }, "dojo");

      var cp1 = new ContentPane({
       title: "Maintab"
     });

      var btn = new Button({
        innerHTML: "New tab"
      });

      // alle elementen toevoegen
      tc.addChild(cp1);
      cp1.addChild(btn);
      tc.startup();

      // klikevent koppelen aan button
      on(btn, "click", function(){
        topic.publish("createTab");
      });

      topic.subscribe("createTab", function(){
        var cpx = new ContentPane({
         title: "Subtab"
       });

        var btn = new Button({
          innerHTML: "New tab"
        });
        
        on(btn, "click", function(){
          topic.publish("createTab");
        });

        cpx.addChild(btn);
        tc.addChild(cpx);

      });

    });

</script>

Ik ben nog maar pas met dojo begonnen, en ik zit met een vraag.
Het is gewoon om dojo wat te leren kennen; er is een tabcontainer, met een button, en als je klikt op de button verschijnt er een nieuwe tab met een button om om weer een nieuwe tab te maken, enzo...
Nu, mijn vraag is, waarom moet ik het event 2 keer koppelen aan mijn button? Ik moet twee keer
Code:
      on(btn, "click", function(){
        topic.publish("createTab");
      });

doen, waarom?
Kan ik niet gewoon eenmaal het event koppelen aan mijn btn? Nu moet ik dit dus 2 keer doen....

hMitto

Legacy Member
Hi, heb jij het nog altijd niet opgelost?
Persoonlijk heb ik nog nooit iets met dojo weet ik veel wat geprobeerd maar ik zie dat de code een beetje schoongemaakt moet worden. Ligt het niet daaraan, dan? (bvb. ik zie dat je hetzelfde event twee keer invoert)!

dJeez

Legacy Member
Omdat je een nieuwe instance van btn creëert in je subscribe listener. Dat lijkt mij totaal overbodig als je steeds dezelfde knop wil gebruiken om een nieuwe tab toe te voegen. Tenzij dat niet is wat je wil doen uiteraard, aangezien je spreekt daar over een knop in een tab?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan