Element Interactions Schema
Element interactions define event-driven behavior: when a trigger fires, an action is executed on a target. They are stored in the _interactions key inside any element’s settings object.
Data structure
Section titled “Data structure”Interactions are a flat array of interaction items. Each item specifies a trigger event, the action to perform, and a target element or selector.
interactionItem core properties
Section titled “interactionItem core properties”| Property | Type | Description |
|---|---|---|
id | string | integer | Unique identifier for this interaction |
trigger | string | Event that fires this interaction (see triggers below) |
action | string | Action to perform (see actions below) |
target | string | Target reference ("self", element ID, or selector context) |
targetSelector | string | CSS selector for the target element |
delay | string | Delay before executing the action (ms) |
runOnce | boolean | If true, the interaction fires only once |
Additional properties
Section titled “Additional properties”These properties apply depending on the chosen action:
| Property | Type | Used with |
|---|---|---|
animationType | string | startAnimation (animation type) |
animationId | string | startAnimation (predefined animation ID) |
animationDelay | string | startAnimation (animation delay) |
animationDuration | string | startAnimation (animation duration) |
jsFunction | string | javascript (function name to call) |
jsFunctionArgs | array | javascript (arguments array: [{ jsFunctionArg: "value" }]) |
scrollToDelay | string | scrollTo (delay before scrolling) |
scrollToOffset | string | scrollTo (scroll offset in pixels) |
scrollOffset | string | scroll trigger (scroll position threshold) |
rootMargin | string | enterView/leaveView (IntersectionObserver root margin) |
templateId | string | Template ID reference |
formId | string | Form element ID |
ajaxQueryId | string | AJAX query element ID |
offCanvasSelector | string | toggleOffCanvas (offcanvas CSS selector) |
toggleOffCanvasInfo | string | toggleOffCanvas (info field) |
filterElementId | string | Query filter element ID |
infoBoxId | string | Info box element ID |
loadMoreQuery | string | loadMore (query element ID) |
targetFormSelector | string | clearForm (form CSS selector) |
actionAttributeKey | string | setAttribute/removeAttribute/toggleAttribute (attribute name) |
actionAttributeValue | string | setAttribute/toggleAttribute (attribute value) |
disablePreventDefault | boolean | Do not call preventDefault() on the trigger event |
storageType | string | storageAdd/storageRemove/storageCount (storage type) |
popupContextId | string | Popup context ID |
popupContextType | string | Popup context type |
conditionsSep | string | Visual separator for conditions UI |
Example
Section titled “Example”{ "_interactions": [ { "id": "abc123", "trigger": "click", "action": "startAnimation", "target": "self", "animationType": "fadeIn", "animationDuration": "500" }, { "id": "def456", "trigger": "enterView", "action": "show", "target": "self", "rootMargin": "0px 0px -100px 0px", "runOnce": true } ]}Triggers
Section titled “Triggers”Element
clickmouseoverfocusblurmouseentermouseleaveenterViewleaveViewanimationEndajaxStartajaxEndformSubmitformSuccessformError
Browser / Window
scrollcontentLoadedmouseleaveWindow
Query filters
filterOptionEmptyfilterOptionNotEmpty
WooCommerce
wooAddedToCartwooAddingToCartwooRemovedFromCartwooUpdateCartwooCouponAppliedwooCouponRemoved
Popup templates have two additional triggers (showPopup, hidePopup) available via the templateInteractionItem variant in template settings.
Actions
Section titled “Actions”| Action | Description |
|---|---|
show | Show element |
hide | Hide element |
click | Click element |
setAttribute | Set an HTML attribute |
removeAttribute | Remove an HTML attribute |
toggleAttribute | Toggle an HTML attribute |
toggleOffCanvas | Toggle an offcanvas panel |
loadMore | Load more items (query loop) |
startAnimation | Start a CSS animation |
scrollTo | Scroll to an element |
javascript | Execute a custom JavaScript function |
openAddress | Open a map address |
closeAddress | Close a map address |
clearForm | Clear a form |
storageAdd | Add item to browser storage |
storageRemove | Remove item from browser storage |
storageCount | Count items in browser storage |
Interaction sub-conditions
Section titled “Interaction sub-conditions”Each interaction can optionally include sub-conditions that must be met before the action fires. These are stored in the interactionConditions array, with interactionConditionsRelation controlling whether conditions are combined with AND or OR logic.
| Property | Type | Description |
|---|---|---|
interactionConditions | array | Array of interactionConditionItem objects |
interactionConditionsRelation | string | "and" or "or" (default: "and") |
interactionConditionItem properties
Section titled “interactionConditionItem properties”| Property | Type | Description |
|---|---|---|
conditionType | string | Type of condition check |
storageCompare | string | Comparison operator for storage value |
storageCompareValue | any | Value to compare storage against |
storageKey | any | Browser storage key to check |
Example with sub-conditions
Section titled “Example with sub-conditions”{ "id": "abc123", "trigger": "click", "action": "show", "target": "self", "interactionConditions": [ { "conditionType": "storage", "storageKey": "user_preference", "storageCompare": "==", "storageCompareValue": "dark" } ], "interactionConditionsRelation": "and"}Was this helpful?
A quick vote and short notes help us improve these docs faster.
Leave a note for us
Please do not include passwords, license keys, or personal data. We store submitted notes to improve the docs.
Thanks for sharing feedback. We're using it to improve these docs.