jQuery qtip插件:旧弹出窗口仍然出现在新弹出窗口后面。怎么解决?

时间:2013-01-22 06:27:26

标签: javascript jquery qtip

这是jQuery 1.9.0。我使用qTip 1.0.0-rc3,我已经从所有$.browser代码中删除了(因为它已经从1.9.0开始消失了)。我附上一个简单的裸骨(现在甚至没有重新设计)小费。完整功能如下:

// Function to report a parse error
function reportParseError(parseError, msgHandle, textArea)
{
    // Find the inner link element -- there is only one, so this is "safe".
    var link = msgHandle.find("a");

    link.text("line " + parseError["line"]);

    // Add an onclick hook to the link. When clicking on the link, the caret
    // in the text area will move to the position of the error.
    link.on("click", function(e)
    {
        e.preventDefault();
        textArea.focus().setCursorPosition(parseError["offset"]);
    });

    link.qtip({
        content: parseError["message"],
        show: "mouseover",
        hide: "mouseout",
        position: {
            corner: {
                target: "topMiddle",
                tooltip: "bottomMiddle"
            }
        }
    });

    // Show the message
    msgHandle.show();
}

此功能可以实现我想要的功能(提示出现在链接上方)。

问题是,提示的先前内容(解析消息可能非常大)比新内容大:我在鼠标悬停时看到新内容下面的旧内容(两个内容​​在mouseout上消失)。

你如何解决这个问题?

编辑:经过多次思考后,似乎可以看到观察到的行为:每次触发此功能时,都会创建一个新的工具提示。这意味着需要在“初始时间”(即,当document.ready()时)附加提示并在需要时填充适当的内容。我做对了吗?

1 个答案:

答案 0 :(得分:0)

好的,回答自己。

我无法让qTip2工作,所以qTip 1就是。

问题是我发现的,工具提示(实际上是div)已经创建但从未被破坏过。

解决方法是在document.ready()上创建两个虚拟工具提示,在重新创建它们之前将其销毁,因为我无法抓住工具提示的句柄以更新其内容。