2014-09-12 51 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/