ExpressionEngine Docs

# Custom jQuery Events

- Form Interaction Event
- Window Broadcast Event

ExpressionEngine exposes some custom jQuery events to help capture interactions that are common in a content management system.

## Form Interaction Event

An interaction event (`interact`) can be thought of as an improved change event. When bound on a form or a form element, it fires whenever the user makes changes to the form. This includes (un)checking checkboxes, changing dropdown menus, and manipulating text in a text input or textarea.

Unlike normal change events, it fires instantly on text inputs and does not require the user to change focus.

    $('form').on('interact', function() {
        // I see typing!
    });

Note: When bound on a form, this event will not be triggered on submission.

## Window Broadcast Event

The window broadcast event can be used to communicate state between control panel windows of the same browser session. To send a message, simply trigger the event on the window element.

    $(window).trigger('broadcast', 'a message');

To listen for events from other windows, bind the event listener on the window.

    $(window).on('broadcast', function(message) {
      alert(message);
    });

To avoid messaging conflicts, it is important that you namespace your events using jQuery’s event namespacing.

    $(window).trigger('broadcast.greatAddon', { maxVolume: 11 });
    $(window).on('broadcast.greatAddon', function(msg) {
      console.log(msg.maxVolume);
    });

Note: The data is sent as a json encoded string and therefore can only contain javascript primitives.