diff --git a/package.json b/package.json index c3a4730..5fe84a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "logui", - "version": "0.5.3b", + "version": "0.5.3c", "description": "A framework-agnostic client-side JavaScript library for logging user interactions on webpages.", "main": "./src/main.js", "scripts": { diff --git a/src/modules/DOMHandler/mutationObserverController.js b/src/modules/DOMHandler/mutationObserverController.js index 218fe2e..b15e32f 100644 --- a/src/modules/DOMHandler/mutationObserverController.js +++ b/src/modules/DOMHandler/mutationObserverController.js @@ -41,12 +41,25 @@ export default (function(root) { for (let element of record.addedNodes) { if (element.nodeType == 1) { processAddedElement(element); + + // There may be child elements that need to be processed, too. + // The recurive function processDescendants handles this. + processDescendants(element); } } } } }; + var processDescendants = function(element) { + let childArray = Array.from(element.children); + + childArray.forEach((childElement) => { + processAddedElement(childElement); + processDescendants(childElement); + }); + }; + var processAddedElement = function(element) { let shallBind = false;