Search code examples
google-closure-library

Does Closure Library have an equivalent to jQuery.live?


In jQuery I can use live() to add event listeners, even for elements that don't exist yet:

jQuery('a[href*="/item/"]', pageContent).live('click', preLoadAjaxPage);

Does Closure Library have an equivalent?

goog.events.EventType doesn't have any "DOM change" event, so I can not do goog.events.listen(goog.dom.getDocument(), goog.events.EventType.DOM_CHANGE, addEventListenersAgain) or similar.


Solution

  • I followed @Felix Kling's suggestion and registered the event handler at root:

    goog.events.listen(document.body, goog.events.EventType.CLICK,
        /**
         * @param {goog.events.BrowserEvent} event
         */
        function(event) {
            var realEvent = event.event_;
            var el = /** @type {HTMLAnchorElement} */ (event).target;
    
            if (el.tagName.toLowerCase() == 'a' && (href matches pattern)) {
                // ...
            }
        });