eventHandlers
Optional. Adds event handlers to the HTML elements of a custom template of DataView items
eventHandlers?: {
[eventName: string]: {
[className: string]: (event: Event, id: string | number) => void | boolean;
};
};
Parameters:
The eventHandlers object includes a set of key:value pairs, where:
| key | the name of the event. Note, that at the beginning of the event name the 'on' prefix is used (onclick, onmouseover). |
| value | an object that contains a key:value pair, where key is the css class name that the handler will be applied to and value is a function that takes two parameters:
|
Example
function template() {
return "<div className='class_name'></div>";
}
const dataview = new dhx.DataView("dataview_container", {
template: template,
eventHandlers: {
onclick: {
class_name: function(event) {
console.log("You clicked on " + event.target.tagName);
// return false;
},
},
onmouseover: {
class_name: function(event, id) {
console.log("Item ID: " + id);
},
}
}
});
Related sample: Dataview. Handling events in template
Note. Returning false from a handler function will stop the template event bubbling and block triggering of the click event when you click on the item with className.
As an alternative way, you may use stopPropagation() for this purpose (from v7.3.6):
eventHandlers: {
onclick: {
class_name: (event) => {
evt = event || window.event;
evt.stopPropagation();
console.log("button click");
}
}
}
Change log:
added in v7.0