JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.6
[ckeditor.git] / _source / core / dom / domobject.js
index bb029e0..fccad5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -84,10 +84,10 @@ CKEDITOR.dom.domObject.prototype = (function()
                        {\r
                                var listener = nativeListeners[ eventName ] = getNativeListener( this, eventName );\r
 \r
-                               if ( this.$.attachEvent )\r
-                                       this.$.attachEvent( 'on' + eventName, listener );\r
-                               else if ( this.$.addEventListener )\r
+                               if ( this.$.addEventListener )\r
                                        this.$.addEventListener( eventName, listener, !!CKEDITOR.event.useCapture );\r
+                               else if ( this.$.attachEvent )\r
+                                       this.$.attachEvent( 'on' + eventName, listener );\r
                        }\r
 \r
                        // Call the original implementation.\r
@@ -107,10 +107,10 @@ CKEDITOR.dom.domObject.prototype = (function()
                                var listener = nativeListeners && nativeListeners[ eventName ];\r
                                if ( listener )\r
                                {\r
-                                       if ( this.$.detachEvent )\r
-                                               this.$.detachEvent( 'on' + eventName, listener );\r
-                                       else if ( this.$.removeEventListener )\r
+                                       if ( this.$.removeEventListener )\r
                                                this.$.removeEventListener( eventName, listener, false );\r
+                                       else if ( this.$.detachEvent )\r
+                                               this.$.detachEvent( 'on' + eventName, listener );\r
 \r
                                        delete nativeListeners[ eventName ];\r
                                }\r
@@ -167,6 +167,9 @@ CKEDITOR.dom.domObject.prototype = (function()
        /**\r
         * Sets a data slot value for this object. These values are shared by all\r
         * instances pointing to that same DOM object.\r
+        * <strong>Note:</strong> The created data slot is only guarantied to be available on this unique dom node,\r
+        * thus any wish to continue access it from other element clones (either created by clone node or from innerHtml)\r
+        * will fail, for such usage, please use {@link CKEDITOR.dom.element::setAttribute} instead.\r
         * @name CKEDITOR.dom.domObject.prototype.setCustomData\r
         * @function\r
         * @param {String} key A key used to identify the data slot.\r
@@ -200,7 +203,7 @@ CKEDITOR.dom.domObject.prototype = (function()
         */\r
        domObjectProto.getCustomData = function( key )\r
        {\r
-               var expandoNumber = this.$._cke_expando,\r
+               var expandoNumber = this.$[ 'data-cke-expando' ],\r
                        dataSlot = expandoNumber && customData[ expandoNumber ];\r
 \r
                return dataSlot && dataSlot[ key ];\r
@@ -211,7 +214,7 @@ CKEDITOR.dom.domObject.prototype = (function()
         */\r
        domObjectProto.removeCustomData = function( key )\r
        {\r
-               var expandoNumber = this.$._cke_expando,\r
+               var expandoNumber = this.$[ 'data-cke-expando' ],\r
                        dataSlot = expandoNumber && customData[ expandoNumber ],\r
                        retval = dataSlot && dataSlot[ key ];\r
 \r
@@ -233,7 +236,7 @@ CKEDITOR.dom.domObject.prototype = (function()
                // Clear all event listeners\r
                this.removeAllListeners();\r
 \r
-               var expandoNumber = this.$._cke_expando;\r
+               var expandoNumber = this.$[ 'data-cke-expando' ];\r
                expandoNumber && delete customData[ expandoNumber ];\r
        };\r
 \r
@@ -246,7 +249,7 @@ CKEDITOR.dom.domObject.prototype = (function()
         */\r
        domObjectProto.getUniqueId = function()\r
        {\r
-               return this.$._cke_expando || ( this.$._cke_expando = CKEDITOR.tools.getNextNumber() );\r
+               return this.$[ 'data-cke-expando' ] || ( this.$[ 'data-cke-expando' ] = CKEDITOR.tools.getNextNumber() );\r
        };\r
 \r
        // Implement CKEDITOR.event.\r