2013-04-07 3 views
0

Если вы видите this fiddle, вы заметите, что для появления всплывающей подсказки мышь должна покинуть и повторно войти в div foo после того, как всплывающая подсказка была инициализирована.Вручную всплывающая подсказка пользовательского интерфейса jQuery с включенным отслеживанием мыши

Я подумал, что, возможно, я могу вручную запустить всплывающую подсказку, используя tooltip("open"). К сожалению, отслеживание мыши не работает, когда я это делаю. См. this fiddle.

Есть ли у кого-нибудь идея, как я могу открыть всплывающую подсказку с включенным отслеживанием мыши без необходимости покидать и повторно вводить div? Если вам интересно, зачем мне это нужно, я работаю с WebGL в элементе canvas, который занимает весь экран.

+0

Я создал [ошибка] (http://bugs.jqueryui.com/ticket/9214). – theblang

ответ

0

Я использую опцию track: true, и я столкнулся с той же проблемой в другом контексте. Я работаю с richfaces и получаю несколько вызовов ajax, которые перераспределяют части страницы.

После каждого ререйдера мне нужно было перестроить всплывающие подсказки, присутствующие в части с повторным воспроизведением, поэтому я решил привязать обработчик события к документу и перестроить всплывающие подсказки в центре мыши, а затем вручную открыть их, вызвав $(...).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, которые перестраивают ToolTip каждый раз при входе на #foo и another one, который инициализирует всплывающую подсказку только один раз (статический контент)