Allow empty attribute syntax to mean "same command as ID". master
authorJoe Wreschnig <joe.wreschnig@gmail.com>
Thu, 2 Oct 2014 15:57:32 +0000 (17:57 +0200)
committerJoe Wreschnig <joe.wreschnig@gmail.com>
Mon, 6 Oct 2014 23:17:23 +0000 (01:17 +0200)
src/yuu/director.js

index e9996de..4aad9aa 100644 (file)
     if (!yuu.InputState) require("./input");
     if (!yuu.Material) require("./gfx");
 
     if (!yuu.InputState) require("./input");
     if (!yuu.Material) require("./gfx");
 
+    function getCommand (element) {
+        var command = element.getAttribute('data-yuu-command');
+        if (!command || command === 'data-yuu-command')
+            element.setAttribute('data-yuu-command', command = element.id);
+        return command;
+    }
+
     yuu.Director = yT({
         constructor: function (commandStack, input, tickHz) {
             /** Manage and update a set of Scenes
     yuu.Director = yT({
         constructor: function (commandStack, input, tickHz) {
             /** Manage and update a set of Scenes
             var elements = element.querySelectorAll("[data-yuu-command]");
 
             yf.each(function (element) {
             var elements = element.querySelectorAll("[data-yuu-command]");
 
             yf.each(function (element) {
-                var command = element.getAttribute("data-yuu-command");
+                var command = getCommand(element);
                 switch (element.tagName.toLowerCase()) {
                 case "input":
                     switch (element.type.toLowerCase()) {
                 switch (element.tagName.toLowerCase()) {
                 case "input":
                     switch (element.type.toLowerCase()) {
         function handleElement (event) {
             /*jshint validthis:true */
             /* `this` comes from being a DOM element event handler. */
         function handleElement (event) {
             /*jshint validthis:true */
             /* `this` comes from being a DOM element event handler. */
-            var command = this.getAttribute("data-yuu-command");
+            var command = getCommand(this);
             switch (this.tagName.toLowerCase()) {
             case "input":
                 switch (this.type.toLowerCase()) {
             switch (this.tagName.toLowerCase()) {
             case "input":
                 switch (this.type.toLowerCase()) {