2013-04-07 77 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工具只提示一次(靜態內容)