我需要在我的jQuery UI工具提示中添加一个预延迟。我正在使用最新版本(1.9)并希望在它们悬停后2秒开启提示。
我使用以下方法调用标题中的提示:
<script>
$(function() {
$( document ).tooltip({ predelay:2000,});
});
</script>
但是当他们被解雇时,他们没有任何延迟......任何帮助?
答案 0 :(得分:23)
使用此
$( "#elementid" ).tooltip({
show: {
effect: "slideDown",
delay: 250
}
});
答案 1 :(得分:4)
我遇到了同样的问题,但终于提出了这个解决方案:
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();
。例如。如果您希望tooltip-element在悬停IT时保持可见(打开后)。如果需要,请在工具提示中注册相同的悬停事件:target.tooltip({ open: function (event, ui) { ui.tooltip.hover(..., ...); } });
on
和off
。target
或this
替换事件函数中的$(this)
。但我不确定,也没有尝试过;毕竟可能不起作用。closeTimeoutId
或closedelay
的行并删除mouseout
中的target.off('mouseover mouseout');
或将其设置为0 答案 2 :(得分:0)
IE有悬挂逗号的问题,也许尝试删除它,看看是否有帮助:
$( document ).tooltip({ delay:2000 });