# Observe.js - Binding Options - Custom Triggers: Below is a list of all the custom triggers supported in the "data-observe-js" binding attribute for DOM elements. These options are also supported when calling the public function "watch()".

## When Changes Are Detected: ### options.events.onChange( *oldValue*, *newValue* ): Fires when a change has been detected in an object.
***Parameter:*** oldValue: '*object*' - The old value for the object.
***Parameter:*** newValue: '*object*' - The new value for the object.
### options.events.onPropertyChange( *propertyName*, *oldValue*, *newValue* ): Fires when a change has been detected in an object (states which property changed).
***Parameter:*** propertyName: '*string*' - The name of the property that has been changed.
***Parameter:*** oldValue: '*object*' - The old value.
***Parameter:*** newValue: '*object*' - The new value.
### options.events.onCancel( *id* ): Fires when a watch has been cancelled.
***Parameter:*** id: '*string*' - The ID of the watch that has been cancelled.
### options.events.onRemove( *id* ): Fires when a DOM element is no longer available in the DOM.
***Parameter:*** id: '*string*' - The ID of the DOM element.
### options.events.onStart( *originalValue* ): Fires when a watch is started.
***Parameter:*** id: '*object*' - The object that the watch as started for.

## Binding Example: ```markdown
Your HTML.
```
## "watch()" Example: ```markdown ```