detach: function() { this._$.detach(); },
sameNode: function(otherNode) {
- return this.nativeNode === otherNode.nativeNode;
+ return otherNode && this.nativeNode === otherNode.nativeNode;
},
parent: function() {
},
wrapWith: function(node) {
+ node = node instanceof ElementNode ? node : this.document.createElementNode(node);
+
if(this.parent()) {
this.before(node);
}
node.append(this);
+ return node;
},
triggerChangeEvent: function(type, metaData) {
setText: function(text) {
this.nativeNode.data = text;
+ this.triggerTextChangeEvent();
},
appendText: function(text) {
this.nativeNode.data = this.nativeNode.data + text;
+ this.triggerTextChangeEvent();
},
prependText: function(text) {
this.nativeNode.data = text + this.nativeNode.data;
+ this.triggerTextChangeEvent();
+ },
+
+ triggerTextChangeEvent: function() {
+ var event = new events.ChangeEvent('nodeTextChange', {node: this});
+ this.document.trigger('change', event);
}
});
createElementNode: function(from) {
if(!(from instanceof HTMLElement)) {
- from = $('<' + from.tagName + '>');
+ from = $('<' + from.tagName + '>')[0];
}
return new this.ElementNodeFactory(from, this);
},