Cres JS - Observer

DOM mutation observers for detecting when elements are added to the page. This is the mechanism that powers auto-initialization of cres.js components (SelectTwo, Repeater, etc.).

elementRendered

Execute a callback when an element matching a CSS selector is added to the DOM:

window.addEventListener('cresenity:loaded', () => {
    cresenity.observer.elementRendered('.my-widget', (element) => {
        // Initialize the widget
        new MyWidget(element);
    });
});

This uses MutationObserver internally and fires for both initial page load and dynamically added elements (e.g. AJAX content, cloned rows in Repeater).

elementReady

Similar to elementRendered, but only fires once per element:

cresenity.observer.elementReady('#my-chart', (element) => {
    // Initialize chart - only runs once
});

Use Cases

  • Auto-initialize third-party plugins on dynamically loaded content
  • Set up event listeners on elements that don't exist at page load
  • React to DOM changes from AJAX reload operations