Моя проблема возникает, когда я устанавливаю таймер с settimeout ; Popover.prototype.show < /code> не работает в функции обратного вызова: < /p>
Код: Выделить всё
const {createApp, ref, nextTick } = Vue;
const App = createApp({
template: '#app-template',
components: {
'p-button': PrimeVue.Button,
'p-popover': PrimeVue.Popover,
},
props: {},
setup(props) {
const tooltip = ref();
const delay = 500; // milliseconds
let timeoutID = null;
const closeTooltip = () => {
if (timeoutID != null) {
clearTimeout(timeoutID);
timeoutID = null;
tooltip.value.hide();
}
};
const openTooltip = (event) => {
closeTooltip();
timeoutID = setTimeout(() => tooltip.value.show(event), delay);
};
return { tooltip, closeTooltip, openTooltip };
},
},{ /* App setup props */ });
App.use(PrimeVue.Config, { theme: { preset: PrimeUIX.Themes.Nora } });
App.mount('#app-container');< /code>
Hover me 0.5 seconds!
Tooltip content
, когда я заменяю TimeOoutId = setTimeout (() => инструменты.timeoutID = 1;
tooltip.value.show(event); // or: nextTick(() => tooltip.value.show(event));
< /code>
Тогда показывает подсказка, но без какой -либо задержки; Чего я не хочу достичь ... < /p>
Что происходит? Как это исправить?
Подробнее здесь: https://stackoverflow.com/questions/797 ... settimeout
Мобильная версия