2012-12-05 40 views
1

我正在使用qTip2將工具提示附加到我網站上的某些按鈕上。其中一個按鈕在點擊時需要更改顯示在其自己的工具提示中的內容。qTip2:redraw()在IE8中導致錯誤

我發現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()函數可以工作,並且我看到工具提示內容隨我的需要而改變,但錯誤會導致可聽到的「死」,並在IE的狀態欄中放置警告圖標。

回答

1

顯然有一個reposition()函數,它會更新工具提示的內容並重新定位它,因此它相對於觸發它的元素保持居中(在新內容的長度不同的情況下)。因此,而不是:

qapi.redraw(); 

只需使用:

qapi.reposition(); 

具有相同的效果,但擺脫在IE8錯誤的。

+0

非常感謝! – Alexey