The event catcher widget traps JavaScript events dispatched within its child content, and allows invoking a series of ActionWidgets in response to the events.
Use of the event catcher widget is beneficial when using large numbers of other trigger widgets such as the ButtonWidget is causing performance problems. The workflow it enables is akin to what is referred to as "event delegation" in JavaScript parlance.
|actions-* |Action strings to be invoked when a matching event is trapped. Each event is mapped to an action attribute name of the form `actions-"event"` where `event` represents the type of the event. For example: `actions-click` or `actions-dblclick` |
|class |An optional CSS class name to be assigned to the HTML element |
|tag |Optional. The html element the widget creates to capture the events, defaults to:<br>» `span` when parsed in inline-mode<br>» `div` when parsed in block-mode |
! Variables
The following variables are made available to the actions:
|!Variables |!Description |
|`dom-*` |All DOM attributes of the node matching the given selector are made available as variables, with the prefix `dom-` |
|`modifier` |The [[modifier Variable]] contains the Modifier Key held during the event (can be "normal", "ctrl", "shift", "alt" or combinations thereof) |
|`event-mousebutton`|The mouse button (if any) used to trigger the event (can be "left", "right" or "middle"). Note that not all event types support the mousebutton property |
|`tv-popup-coords`|A co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated |
|`tv-selectednode-posx`|`x` offset position of the selected DOM node |
|`tv-selectednode-posy`|`y` offset position of the selected DOM node |
|`tv-selectednode-width`|`offsetWidth` of the selected DOM node |
|`tv-selectednode-height`|`offsetHeight` of the selected DOM node |
|`event-fromselected-posx`|`x` position of the event relative to the selected DOM node |
|`event-fromselected-posy`|`y` position of the event relative to the selected DOM node |
|`event-fromcatcher-posx`|`x` position of the event relative to the event catcher DOM node |
|`event-fromcatcher-posy`|`y` position of the event relative to the event catcher DOM node |
! Example
This example uses the ActionLogWidget and will log the `data-item-id` attribute of the clicked DOM node to the browser's JavaScript [[console|Web Developer Tools]]