2014-09-12 33 views
1

如果我打電話MagicZoomPlus.stop();主動magiczooms我會經常收到錯誤:正在運行MagicZoomPlus.stop();導致間歇性錯誤

Uncaught TypeError: Cannot read property 'width' of null 

在其他時候,我會得到這個錯誤:發生這種情況時,鼠標懸停縮略圖

Uncaught TypeError: Cannot read property 'r' of undefined 

觸發:

Uncaught TypeError: Cannot read property 't16' of null 

我試過...

  • 打電話給M agicZoomPlus.stop()onload事件
  • 不同長度
  • 測試對於MagicZoomPlus
  • 的存在下,寬度/高度測試圖像之後調用MagicZoomPlus.stop()的一個的setTimeout內調用MagicZoomPlus.stop()內調用通過CSS圖像MagicZoomPlus.stop()
  • 設置寬度/高度之前和調用MagicZoomPlus.stop()

下面是一個使用標記從一個例子複製其文檔頁面上的的jsfiddle一個鏈路之前屬性: http://jsfiddle.net/sjjju4x4/6/

如果在控制檯打開的情況下「運行」小提琴,有時會出錯,有時候不會。如果減少超時10毫秒,它會更經常發生

好像我不能沒有一個代碼示例張貼,所以這裏從小提琴的JS的:

var output = document.getElementById('status'); 
setTimeout(function() { 
    document.getElementById('status').textContent = '...............calling stop'; 
    MagicZoomPlus.stop(); 
}, 20); 

預先感謝任何幫助或建議,你可以提供。

回答

0

在調用MagicZoomPlus.stop()之前,請確保MagicZoom實例已準備就緒。

這是可能的,下面這個網址中描述的「onready」回調做到這一點:

https://www.magictoolbox.com/magiczoomplus/integration/#api

下面是一些示例代碼:

MagicZoomPlus.options = { 
    'onready': function(id, isUpdated) { 
    setTimeout(function() { 
     document.getElementById('status').textContent = '...............calling stop'; 
     MagicZoomPlus.stop(id); 
    }, 20); 
    } 
}; 

這裏是一個的jsfiddle幫助你看到的代碼:

http://jsfiddle.net/pg9f98z0/

相關問題