Virtuemart和Joomla:Uncaught TypeError:对象[object Object]没有方法'iZoom'

时间:2012-10-18 17:00:24

标签: jquery joomla virtuemart

我正在使用Joomla 2.5和Virtuemart 2.0.12。

现在,我在普通的Joomla模板上安装了一个virtmart模板。

现在,发生以下错误:

在Virtuemart中打开产品详细信息页面时,产品的缩略图不起作用,以及缩放。此外,将产品添加到购物车的按钮不起作用。

这是错误:

  

未捕获TypeError:对象[object Object]没有方法'iZoom'

这是.js文件中的代码:

// Lets Load The Lens Effect ;-)
bigImage.iZoom({
    borderColor: '#e1e0e0', // set the loupe border color
    borderWidth: '3px', // set the loupe border width
         diameter: '170'
});

我怎样才能解决这个问题? 我在Joomla中绝对没有安装任何其他组件或模块。

提前谢谢。

JorritK

1 个答案:

答案 0 :(得分:0)

您的解决方案可能是javascript冲突。

几天前我和Joomla有过类似的问题! 2.5模板(jat3模板 - 更具体的JA Portfolio)和我自己编写的滑块模块。 首先我认为问题是由我的模块引起的,但事实并非如此。

我的错误类似于您:

Uncaught TypeError: Object [object Object] has no method 'getElements'

正如您可以看到错误几乎相同,只有方法不同但我认为在这种情况下它是无关紧要的。当javascrips因为程序不知道应该使用哪个库或者它被joomla覆盖($ sign的引用)而发生这种错误时,会发生这种错误 - 但这取决于。

我必须承认我从未使用过Virtuemart,并且不知道模板使用中包含哪种javascript,但我确信您的解决方案是专注于放置:

jQuery.noConflict();

..每当包含jQuery库时。

我用我的模块中的主.php文件中的这几行解决了我的问题:

if($loadJquery) $document->addScript(ModSlideshowHelper::getJqueryFile($jqueryFile));
if($jqueryNoConflict) $document->addScript(ModSlideshowHelper::getJqueryNoConflictFile());

正如您注意到第一行添加jQuery脚本,第二行包含静态函数。加载第二个函数的文件只包含单行jQuery.noConflict();

public static function getJqueryNoConflictFile()
{
    return 'modules'.DS.'mod_slideshow'.DS.'js'.DS.'jquery-no-conflict.js';
}

希望这个例子有帮助