我正在使用qTip2将工具提示附加到我网站上的某些按钮。单击其中一个按钮时,需要更改自己工具提示中显示的内容。
我发现this question on SO解决了同一问题并提供了有效的example。该示例的相关部分是:
var qapi = $('#test').data('qtip'),
newtip = 'new content';
qapi.options.content.text = newtip;
qapi.elements.content.text(newtip);
qapi.redraw();
基本上,您可以获得工具提示,定义新内容,交换新内容,并在工具提示上调用redraw()
,以便重新绘制新内容。
但是,这个示例和我在自己网站中的实现都会在IE8中生成错误 - 即使它正常工作并且内容也按预期更改!它也适用于所有其他浏览器,但不会产生错误。
错误是:
Object doesn't support this property or method
在调用redraw()
的行:
qapi.redraw();
有什么办法可以防止这种错误发生?即使redraw()
函数有效,我看到工具提示内容也随意更改,但错误会导致听到“ding”,并在IE的状态栏中显示警告图标。
答案 0 :(得分:1)
显然有一个reposition()
函数可以更新工具提示的内容并重新定位它,使其相对于触发它的元素保持居中(如果新内容的长度不同)。所以而不是:
qapi.redraw();
只需使用:
qapi.reposition();
具有相同的效果,但摆脱了IE8中的错误。