这是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()时)附加提示并在需要时填充适当的内容。我做对了吗?
答案 0 :(得分:0)
好的,回答自己。
我无法让qTip2工作,所以qTip 1就是。
问题是我发现的,工具提示(实际上是div)已经创建但从未被破坏过。
解决方法是在document.ready()上创建两个虚拟工具提示,在重新创建它们之前将其销毁,因为我无法抓住工具提示的句柄以更新其内容。