РЕДАКТИРОВАТЬ: я обновил этот ответ с наилучшим предположением, чтобы получить только задержка всплывающей подсказки, которая произойдет при выходе мышиСуть в том, что вам нужны две функции
. Вам нужно обернуть внутреннюю часть функции remove_tooltip
в setTimeout()
с желаемой задержкой.Измените число в конце, чтобы изменить величину задержки.
Замените свой код следующим:
init_tooltip();
$(window).resize(init_tooltip);
target.data('is_moving', false);
var remove_tooltip = function () {
removeTooltipCore();
};
var remove_tooltip_with_delay = function () {
setTimeout( function () {
removeTooltipCore();
}, 1000); //1 second delay
};
function removeTooltipCore() {
if (target.data('is_moving')) {
return;
}
tooltip.removeClass(fadin).addClass(fadeout);
var speed = 15000;
tooltip.animate({
opacity: 0
}, speed, function () {
$(this).remove();
});
if (!tiphtml && !is_swatch && !is_swatch_desc && !is_swatch_lbl_desc && !is_swatch_img && !is_swatch_img_lbl && !is_swatch_img_desc && !is_swatch_img_lbl_desc) {
target.attr('title', tip);
}
}
target
.on('tmmovetooltip', function () {
target.data('is_moving', true);
init_tooltip(1);
})
.on('tmhidetooltip', remove_tooltip)
.on('mouseleave', remove_tooltip_with_delay);
target.closest('label').on('tmhidetooltip', remove_tooltip);
target.closest('label').on('mouseleave', remove_tooltip_with_delay);
tooltip.on('click', remove_tooltip);