1

我正在使用 qTip2 将工具提示附加到我网站上的某些按钮上。单击其中一个按钮时,需要在其可见时更改其自己的工具提示中显示的内容。

在 SO 上发现了这个问题,它解决了同样的问题并提供了一个工作示例。该示例的相关部分是:

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()功能有效并且我看到工具提示内容发生了我想要的更改,但该错误会导致听到“叮”声并在 IE 的状态栏中放置一个警告图标。

4

1 回答 1

1

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

qapi.redraw();

只需使用:

qapi.reposition();

这具有相同的效果,但消除了 IE8 中的错误。

于 2012-12-05T15:49:10.563 回答