21 lines
937 B
JavaScript
21 lines
937 B
JavaScript
export function getElements(dataType, dataValue, props = {}) {
|
|
// props: { additionalDataFilters: [key, value][], additionalPropertyFilters: [key, value][] }
|
|
|
|
const queryString = [
|
|
...[[dataType, dataValue], ...(props.additionalDataFilters ?? [])]
|
|
.map(([k, v]) => [`data-${k}`, v]),
|
|
...(props.additionalPropertyFilters ?? []),
|
|
].map(([k, v]) => v === '*' ? `[${k}]` : `[${k}='${v}']`).join("");
|
|
return document.querySelectorAll(queryString);
|
|
}
|
|
|
|
export function addEventToElement(dataType, dataValue, event, callback, props = {}) {
|
|
getElements(dataType, dataValue, props).forEach(e => e.addEventListener(event, callback));
|
|
}
|
|
|
|
export function addEventToInput(dataValue, event, callback, props = {}) {
|
|
addEventToElement("input", dataValue, event, callback, props);
|
|
}
|
|
export function addEventToButton(dataValue, event, callback, props = {}) {
|
|
addEventToElement("button", dataValue, event, callback, props);
|
|
} |