1. #1
    profound's Avatar
    Registered
    13/12/08
    Location
    Dendermonde
    Posts
    3,899
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)

    Dojo vraagje- events

    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....
    no votes  

  2. #2
    hMitto's Avatar
    Registered
    21/07/13
    Location
    Antwerpen
    Posts
    23
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    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)!
    no votes  

  3. #3
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    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?
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in