/*\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
for ( var eventName in nativeListeners )\r
{\r
var listener = nativeListeners[ eventName ];\r
- if ( this.$.removeEventListener )\r
- this.$.removeEventListener( eventName, listener, false );\r
- else if ( this.$.detachEvent )\r
+ if ( this.$.detachEvent )\r
this.$.detachEvent( 'on' + eventName, listener );\r
+ else if ( this.$.removeEventListener )\r
+ this.$.removeEventListener( eventName, listener, false );\r
\r
delete nativeListeners[ eventName ];\r
}\r
/**\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
*/\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
*/\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
// 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
/**\r
- * @name CKEDITOR.dom.domObject.prototype.getCustomData\r
+ * Gets an ID that can be used to identiquely identify this DOM object in\r
+ * the running session.\r
+ * @name CKEDITOR.dom.domObject.prototype.getUniqueId\r
+ * @function\r
+ * @returns {Number} A unique ID.\r
*/\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