X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/45bebc5c454ced236db27631004cc2628260f3c9..af57fe565c8a5d6fc36ea5c3dc83065f69534b04:/src/smartxml/core.js?ds=inline diff --git a/src/smartxml/core.js b/src/smartxml/core.js index 6329491..f8b128d 100644 --- a/src/smartxml/core.js +++ b/src/smartxml/core.js @@ -169,7 +169,11 @@ var elementNodeTransformations = { setAttr: function(name, value, silent) { var oldVal = this.getAttr(name); - this._$.attr(name, value); + if(_.isUndefined(value)) { + this._$.removeAttr(name); + } else { + this._$.attr(name, value); + } if(!silent) { this.triggerChangeEvent('nodeAttrChange', {attr: name, oldVal: oldVal, newVal: value}); } @@ -359,7 +363,7 @@ var textNodeTransformations = { newElement.prepend({text: suffix}); } - return {first: parentElement, second: newElement}; + return {first: parentElement, second: newElement, created: newElement}; }, divideWithElementNode: function(node, params) { @@ -513,6 +517,9 @@ var documentTransformations = { nextNext = next ? next.next() : null; toDetach.detach({normalizeStrategy: (next && next.sameNode(params.to.node)) ? 'merge' : 'detach-right'}); if(next && !next.isInDocument()) { + if(next.sameNode(params.to.node)) { + return; + } next = nextNext; } }