如何将qtip2工具提示移动到另一个元素?

时间:2015-08-05 23:08:13

标签: javascript jquery qtip2

我有一个带有qtip2工具提示的元素。请参阅JSFfiddle示例:http://jsfiddle.net/inodb/y7xqvceL/2/。示例中的元素是<a id="test">元素。我想以编程方式将所述工具提示移动到另一个<a id="test2">元素。我想我应该

  1. 更新现有工具提示的目标或
  2. 复制原件的所有选项,并在第二个锚元素上创建一个新的qtip,提供所有这些选项
  3. 问题的背景是我有一个库,当鼠标悬停在SVG <circle>元素上时显示工具提示。我想将这些圈子包裹在<g>标记中,以便我可以在圈子上放置<text>。但是工具提示仅适用于圆圈,因此如果将鼠标悬停在文本上,则不会显示工具提示。我认为将qtip2工具提示从<circle>元素移动到<g>元素是最简单的。

1 个答案:

答案 0 :(得分:1)

当我重复使用qtip2工具提示&amp;他们的选择,我发现创建一个生成或破坏工具提示的函数很有帮助。

小提琴: 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

如果这太复杂或者此操作只需要发生一次,我建议您销毁第一个工具提示并手动创建新工具提示。

小提琴: 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',
        },
    });
});