You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/packages/ui-default/components/tooltip/tooltip.page.js

30 lines
831 B
JavaScript

import $ from 'jquery';
import { AutoloadPage } from 'vj/misc/Page';
import Tooltip from './Tooltip';
function getClosestTooltipElement(element) {
const MAX_DEPTH = 3;
for (let i = 0, e = element; i < MAX_DEPTH && e !== null && e !== document; e = e.parentNode, i++) {
if (e.getAttribute('data-tooltip')) {
return e;
}
}
return null;
}
const tooltipPage = new AutoloadPage('tooltipPage', () => {
$(document).on('mouseover', (e) => {
const element = getClosestTooltipElement(e.target);
if (!element) return;
const $element = $(element);
const options = {};
if ($element.attr('data-tooltip-pos')) {
options.position = $element.attr('data-tooltip-pos');
}
const tooltip = Tooltip.getOrConstruct($element, options);
tooltip.open();
});
});
export default tooltipPage;