我需要在我的 jQuery UI 工具提示上添加一个预延迟。我使用的是最新版本 (1.9),并希望提示在悬停后 2 秒打开。
我使用以下方法调用标题中的提示:
<script>
$(function() {
$( document ).tooltip({ predelay:2000,});
});
</script>
但是当他们被解雇时,他们没有任何延迟......有什么帮助吗?
用这个
$( "#elementid" ).tooltip({
show: {
effect: "slideDown",
delay: 250
}
});
我有同样的问题,但最终想出了这个解决方案:
var opendelay = 500;
var closedelay = 500;
var target = $('.selector');
target.tooltip({ /* ... */ });
target.off('mouseover mouseout');
target.on('mouseover', function(event) {
event.stopImmediatePropagation();
clearTimeout(target.data('closeTimeoutId'));
target.data('openTimeoutId', setTimeout(function() { target.tooltip('open'); }, opendelay));
});
target.on('mouseout', function(event) {
event.stopImmediatePropagation();
clearTimeout(target.data('openTimeoutId'));
target.data('closeTimeoutId', setTimeout(function() { target.tooltip('close'); }, closedelay));
});
本质上它的作用是:
event.stopImmediatePropagation();
仅在某些情况下需要。例如。如果您希望工具提示元素在悬停 IT 时保持可见(打开后)。如果需要,请在工具提示上注册相同的悬停事件:target.tooltip({ open: function (event, ui) { ui.tooltip.hover(..., ...); } });
on
and off
。target
事件函数内部。但我不确定也没有尝试过;毕竟可能行不通。this
$(this)
closeTimeoutId
or的行closedelay
并删除mouseout
intarget.off('mouseover mouseout');
或将其设置为 0IE 有悬挂逗号的问题,也许尝试删除它并查看是否有帮助:
$( document ).tooltip({ delay:2000 });