diff --git a/README.md b/README.md index 3070ca1..e0e0cfd 100644 --- a/README.md +++ b/README.md @@ -262,6 +262,7 @@ Callbacks are bound to Pjax instance itself to allow you to reuse it (ex: `this. - `Pjax.switches.outerHTML`: default behavior, replace elements using outerHTML - `Pjax.switches.innerHTML`: replace elements using innerHTML and copy className too +- `Pjax.switches.replaceNode`: replace elements using replaceChild - `Pjax.switches.sideBySide`: smart replacement that allows you to have both elements in the same parent when you want to use CSS animations. Old elements are removed when all children have been fully animated ([animationEnd](http://www.w3.org/TR/css3-animations/#animationend) event triggered) ###### Create a switch callback diff --git a/lib/switches.js b/lib/switches.js index 737febb..cdacc0e 100644 --- a/lib/switches.js +++ b/lib/switches.js @@ -26,6 +26,12 @@ module.exports = { this.onSwitch() }, + // Equivalent to outerHTML(), but doesn't require switchElementsAlt() for and + replaceNode: function(oldEl, newEl) { + oldEl.parentNode.replaceChild(newEl, oldEl) + this.onSwitch() + }, + sideBySide: function(oldEl, newEl, options, switchOptions) { var forEach = Array.prototype.forEach var elsToRemove = []