2015-08-05 4 views
0

У меня есть элемент с всплывающей подсказкой qtip2. См. Пример JSFfiddle: http://jsfiddle.net/inodb/y7xqvceL/2/. Элементом в примере является элемент <a id="test">. Я хочу переместить указанную подсказку на другой элемент <a id="test2"> программно. Я полагаю, я должен либоКак перенести подсказку qtip2 в другой элемент?

  1. обновления цели существующей подсказки или
  2. скопировать все параметры оригинала и создать новый QTIP на втором анкерный элементе поставляя всех этих варианты

контекст к проблеме заключается в том, что у меня есть библиотека, которая показывает подсказки при наведении на SVG <circle> элементов. Я хочу обернуть эти круги в тег <g>, чтобы я мог поместить на круг <text>. Однако всплывающая подсказка работает только на круге, поэтому, если вы наводите курсор на текст, всплывающая подсказка не отображается. Я решил перемещать всплывающую подсказку qtip2 из элемента <circle> в элемент <g>.

+0

Вы должны попробовать первый ... потом задавать вопросы здесь о том, что не работает, если вы столкнулись с проблемами – charlietfl

ответ

1

Когда я повторно использую всплывающие подсказки qtip2 &, я считаю полезным создать функцию, которая генерирует или уничтожает всплывающую подсказку.

Fiddle:http://jsfiddle.net/y7xqvceL/8/

//custom function to create tooltips with similar options or destroy them 
function GenerateTooltip(tooltipElement, isCreating) { 
    //if creating the tooltip, use these options 
    if (isCreating) { 
     $(tooltipElement).qtip({ 
      content: { 
       text: 'Tooltip content that should be moved', 
      }, 
     }); 
    } else { 
     //if isCreating == false, destroy the tooltip specified 
     tooltipElement.qtip('destroy', true); 
    } 
} 
//... 
GenerateTooltip($("#test"), false); //first destroy old tooltip 
GenerateTooltip($("#test2"), true); //create new tooltip 

Если это слишком сложно, или эта операция требуется только один раз произойти, я бы рекомендовал разрушив первую подсказку и создания нового вручную.

Fiddle:http://jsfiddle.net/y7xqvceL/9/

//this button click moves the tooltip to the other element 
$("#move-tt").click(function() { 
    $('#test').qtip('destroy', true); //destroy old tooltip 

    $("#test2").qtip({ //create new tooltip 
     content: { 
      text: 'Tooltip content that should be moved', 
     }, 
    }); 
}); 
+1

Спасибо большое. Я решил проблему аналогично вашей рекомендации. В моем случае библиотека не предоставляет функции для создания всплывающей подсказки, поэтому я думаю, что было бы еще проще перемещать/копировать всплывающую подсказку, а не создавать новую. Если это невозможно, потому что ваше решение является самым лучшим. – inodb

+0

Я не верю, что «перемещение» возможно. Когда он будет создан, он застрянет. – AlbatrossCafe

Смежные вопросы