delete that[ '_newAttrs' ];\r
// このあとで _newAttr にネットワーク系の属性を控える, attrText には加えない\r
} else {\r
- that[ '_flags' ] &= ~X_Node_State.OLD_ATTRTEXT;\r
+ that[ '_flags' ] &= ~X_NodeFlags_OLD_ATTRTEXT;\r
// 完全な attrText\r
};\r
\r
})( X_Node_Attr_renameForDOM, X_Node_Attr_renameForTag );\r
\r
\r
-\r
-/* --------------------------------------\r
- * attribute\r
- * \r
- * http://nanto.asablo.jp/blog/2005/10/29/123294\r
- * className, onclick等 はここで設定しない\r
- * \r
+/**\r
+ * 属性の getter と setter。onclick等はできないので listen, listenOnce を使うこと。http://nanto.asablo.jp/blog/2005/10/29/123294\r
+ * @alias Node.prototype.attr\r
+ * @param {string|object} [nameOrObj] 属性名、または追加する属性のハッシュ\r
+ * @param {string|number} [value=] 属性の値\r
+ * @return {Node|string|number} getter の場合は値を、setter の場合は自身を返す。(メソッドチェーン)\r
+ * @example // getter\r
+ * node.attr( 'tagName' ) === 'DIV';\r
+ * // setter - 1\r
+ * node.attr( { src : url, width : 100, height : 100 } );\r
+ * // setter - 2\r
+ * node.attr( 'src', url );\r
*/\r
-Node.prototype[ 'attr' ] = function( nameOrObj /* v */ ){\r
+function X_Node_attr( nameOrObj /* v */ ){\r
var attrs = this[ '_attrs' ], newAttrs, f, k, elm, v;\r
\r
if( !this[ '_tag' ] ) return this;\r
};\r
if( f ){\r
delete this[ '_attrText' ];\r
- this[ '_flags' ] |= X_Node_State.DIRTY_ATTR | X_Node_State.OLD_ATTRTEXT;\r
- this[ '_flags' ] & X_Node_State.IN_TREE && X_Node_reserveUpdate();\r
+ this[ '_flags' ] |= X_NodeFlags_DIRTY_ATTR | X_NodeFlags_OLD_ATTRTEXT;\r
+ this[ '_flags' ] & X_NodeFlags_IN_TREE && X_Node_reserveUpdate();\r
};\r
return this;\r
} else\r
// setter\r
if( X_Node_Attr_setAttr( this, attrs || ( this[ '_attrs' ] = {} ), this[ '_newAttrs' ] || ( this[ '_newAttrs' ] = {} ), nameOrObj, arguments[ 1 ] ) === true ){\r
delete this[ '_attrText' ];\r
- this[ '_flags' ] |= X_Node_State.DIRTY_ATTR | X_Node_State.OLD_ATTRTEXT;\r
- this[ '_flags' ] & X_Node_State.IN_TREE && X_Node_reserveUpdate();\r
+ this[ '_flags' ] |= X_NodeFlags_DIRTY_ATTR | X_NodeFlags_OLD_ATTRTEXT;\r
+ this[ '_flags' ] & X_NodeFlags_IN_TREE && X_Node_reserveUpdate();\r
};\r
return this;\r
} else\r
// TODO unique の check\r
if( v !== that[ '_id' ] ){\r
that[ '_id' ] = v;\r
- that[ '_flags' ] |= X_Node_State.DIRTY_ID;\r
- that[ '_flags' ] & X_Node_State.IN_TREE && X_Node_reserveUpdate();\r
+ that[ '_flags' ] |= X_NodeFlags_DIRTY_ID;\r
+ that[ '_flags' ] & X_NodeFlags_IN_TREE && X_Node_reserveUpdate();\r
};\r
return; \r
case 'class' :\r