我有一个工具提示,它会显示在任何标题上:
$("[title!=]:not(IFRAME)").tooltip();
我有一个可以添加或删除的人员列表,您单击位于此人上方的删除按钮,您单击它以将该人替换为另一个人。
当您单击“删除”按钮时,工具提示会显示,因为该项目有一个。但是一旦你把那个人换掉了,工具提示就不会消失。
我很确定原因是,一旦删除了那个人你就没有鼠标输出,所以工具提示永远不会消失。
我试过了:
$('.remove-player-large a').click(function() {
$("[title!=]:not(IFRAME)").tooltip().hide();
});
但没有运气 有关如何解决此问题的任何建议吗?
这有意义吗?
答案 0 :(得分:5)
您可以使用hideTooltip()函数隐藏工具提示。
var $tooltip = null;
$(function(){
$tooltip = $("input[type='text']").tooltip({
// place tooltip on the right edge
position: "center right",
// a little tweaking of the position
offset: [-2, 10],
// use the built-in fadeIn/fadeOut effect
effect: "fade",
// custom opacity setting
opacity: 0.6
});
$("#close").click(function(){
hideTooltip();
});
});
function hideTooltip()
{
if($tooltip)
{
$tooltip.each(function(index){
var $this = $(this).data('tooltip');
if($this.isShown(true))
$this.hide();
});
}
}
答案 1 :(得分:2)
jqueryUi 工具提示有ipad的问题,如果我们点击页面上的任何地方,工具提示不会消失,所以这个简单的解决方案适合我,并在ios 6,ios 7,ios 8设备上工作< / p>
$("#selector ").tooltip( "close" );
&#13;
答案 2 :(得分:1)
删除工具提示元素以及链接。
$('.remove-player-large a').click(function() {
$('.tooltip').remove();//remove the tool tip element
});
如果您不知道tooltip元素的类名,则需要使用firebug进行检查,或者您可以在工具提示源代码中找到它
答案 3 :(得分:1)
我遇到了同样的问题,而且我看到这里没有一个有效的解决方案,上面提出的问题的正确答案是使用JQuery工具api获取正确的工具提示元素并在删除所有者之前将其删除工具提示。
var t = $('#object_to_remove').data('tooltip');
if(t) t = t.getTip();
if(t) t.remove();
$('#object_to_remove').remove();
if(t)件是必要的,这样如果没有附加或尚未调用工具提示,这不会出错。
由于它们被懒惰地添加到DOM中.getTip可能返回undefined(这意味着工具提示数据仍然驻留在title属性中,因此没有清理要做,因为它将使用拥有的DOM元素删除)。
答案 4 :(得分:1)
我认为最干净的方法是调用此命令:
$("#your-element").tooltip('destroy');
简而言之,它会删除您当前的工具提示功能,并#your-element
恢复正常状态。
答案 5 :(得分:0)
在您删除此人之前,请将.mouseout()事件发送给他。这将触发工具提示的正常mouseout行为,并应隐藏工具提示(如果它在mouseout上真正消失)
答案 6 :(得分:0)
jqueryui工具提示 和 iPad 的某些相关问题得到优雅回答here