2013-04-07 79 views
0

如果您看到this fiddle,您会注意到为了产生工具提示,鼠标必须离开并在工具提示初始化后重新输入div foo启用鼠标跟踪手动打开jQuery UI工具提示

我想也许我可以使用tooltip("open")手动触发工具提示。不幸的是,当我这样做时,鼠标跟踪不起作用。请参阅this fiddle

有没有人有一个想法如何让我的工具提示打开鼠标跟踪启用,而不必离开并重新输入div?如果您想知道为什么我需要这样做,我正在使用WebGL中的canvas元素,该元素占用了整个屏幕。

+0

我创建了一个[bug ticket](http://bugs.jqueryui.com/ticket/9214)。 – theblang 2013-04-07 18:37:41

回答

0

我正在使用track: true选项,我在不同的上下文中遇到同样的问题。我正在使用richfaces,并且有一些Ajax调用会重新渲染页面的某些部分。

每次重新渲染后,我需要重新生成重新渲染部分中的工具提示,所以我决定将附加事件处理程序添加到文档中,并重新构建mouseenter上的工具提示,然后通过调用$(...).tooltip('open')来手动打开它们...工具提示是正确显示,但鼠标跟踪不再工作。

因此,而不是使用$(...).tooltip('open'),我引发MouseEnter事件,并与CSS类工作,只有一次初始化:

jQuery(document).on('mouseenter', '.tt', function() { 
    jQuery(this).tooltip({ 
     content: function() { ... }, 
     items: ".tt, .ttped", 
     track: true 
    }) 
    .toggleClass('tt ttped') 
    .trigger('mouseenter'); 
}); 

我编辑您的jsFiddle,每个你#foo进入时间重建和工具提示another one哪个init工具只提示一次(静态内容)