]> dev.renevier.net Git - syj.git/blobdiff - public/js/utils.js
evt.target.value is not available during paste event. Work around that
[syj.git] / public / js / utils.js
index 348e3a70425033b7859c767cddac9d2929f7e9e8..4c53c76d07cadf7a183b797e52cf8b68f9e5384e 100644 (file)
@@ -15,7 +15,7 @@ var CloseBtn = Class.create({
         }
 
         style = Object.extend({
-            float: "right",
+            'float': "right",
             margin: "2px",
             fontWeight: "bold",
             padding: "0px"
@@ -122,6 +122,23 @@ Element.addMethods({
         Element.setStyle(element, {'backgroundColor': color});
         Element.setStyle.delay(timeout, element, {'backgroundColor': current});
         return element;
+    },
+    text: function(element, content) {
+        if (typeof content === "undefined") { // getter
+            if (element.nodeType === 8) {
+                return "";
+            } else if (element.nodeType === 3 || element.nodeType === 4)  {
+                return element.nodeValue;
+            } else {
+                return $A(element.childNodes).inject("", function(acc, el) {
+                    return acc + Element.text(el);
+                 });
+            }
+        } else { // setter
+            var node = document.createTextNode(content);
+            element.update().appendChild(node);
+            return element;
+        }
     }
 });
 
@@ -319,7 +336,7 @@ Element.addMethods(['input', 'textarea'], {
                 }
                 handler.apply(null, arguments);
             });
-            proceed(element, 'paste', handler);
+            proceed(element, 'paste', handler.defer.bind(handler));
             return proceed(element, 'change', handler);
         }
         return proceed(element, eventName, handler);