diff --git a/packages/alpinejs/src/directives/x-for.js b/packages/alpinejs/src/directives/x-for.js index 6798b33ee..7e4b973eb 100644 --- a/packages/alpinejs/src/directives/x-for.js +++ b/packages/alpinejs/src/directives/x-for.js @@ -6,6 +6,7 @@ import { initTree } from '../lifecycle' import { mutateDom } from '../mutation' import { warn } from '../utils/warn' import { dequeueJob } from '../scheduler' +import { skipDuringClone } from '../clone' directive('for', (el, { expression }, { effect, cleanup }) => { let iteratorNames = parseForExpression(expression) @@ -205,7 +206,8 @@ function loop(el, iteratorNames, evaluateItems, evaluateKey) { mutateDom(() => { lastEl.after(clone) - initTree(clone) + // These nodes will be "inited" as morph walks the tree... + skipDuringClone(() => initTree(clone))() }) if (typeof key === 'object') { diff --git a/packages/alpinejs/src/directives/x-if.js b/packages/alpinejs/src/directives/x-if.js index 25eeb774c..bbb09cc5f 100644 --- a/packages/alpinejs/src/directives/x-if.js +++ b/packages/alpinejs/src/directives/x-if.js @@ -6,6 +6,7 @@ import { mutateDom } from '../mutation' import { walk } from "../utils/walk" import { dequeueJob } from '../scheduler' import { warn } from "../utils/warn" +import { skipDuringClone } from '../clone' directive('if', (el, { expression }, { effect, cleanup }) => { if (el.tagName.toLowerCase() !== 'template') warn('x-if can only be used on a