qTip2:redraw()在IE8中导致错误

时间:2012-12-05 15:31:54

标签: object internet-explorer-8 redraw qtip2

我正在使用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的状态栏中显示警告图标。

1 个答案:

答案 0 :(得分:1)

显然有一个reposition()函数可以更新工具提示的内容并重新定位它,使其相对于触发它的元素保持居中(如果新内容的长度不同)。所以而不是:

qapi.redraw();

只需使用:

qapi.reposition();

具有相同的效果,但摆脱了IE8中的错误。