Это очень специфическая и несколько сложная проблема, поэтому я создал минимальный тестовый пример что вы, вероятно, должны увидеть, прежде чем читать остальную часть этого.
У меня есть страница, на которой отображаются изображения с выделенными областями при наведении через Raphaël. Я также работал над добавлением подсказок Tipsy к этим наведениям, чтобы вы могли видеть, что каждая часть изображения называется.
Рафаэль рисует выделенные области с помощью SVG, а поскольку элементы SVG также являются DOM-узлами, присоединение к ним Tipsy легко выполняется следующим образом:
// Get the path node as a jQuery object.
pathNode = $(path.node);
// Set the title so it's available to tipsy.
pathNode.attr('title', element.title);
// Add a Tipsy tooltip to each node, if Tipsy is loaded.
if ($.fn.tipsy) {
pathNode.tipsy({
fade: true
});
}
Проблема только в ложке дегтя, а причина этого вопроса в том, что Tipsy рисует всплывающую подсказку в верхней части экрана (по координатам 0,0) вместо того, чтобы рядом с SVG-узлом, и я не могу понять, как это сделать. почини это. При отладке Tipsy JavaScript кажется, что в какой-то момент у него есть координаты, но все равно не удается отрисовать в нужном месте.
Кто-нибудь может понять это? (Подробности см. в минимальном тестовом примере).