0

Joomla2.5とVirtuemart2.0.12を使用しています。

ここで、通常のJoomlaテンプレートの上にvirtuemartテンプレートをインストールしました。

ここで、次のエラーが発生します。

Virtuemartで製品の詳細ページを開くと、製品のサムネイルとズームが機能しません。また、カートに商品を追加するためのボタンが機能していません。

これはエラーです:

Uncaught TypeError:オブジェクト[オブジェクトオブジェクト]にはメソッド'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

4

1 に答える 1

0

あなたのための解決策は、javascript の競合である可能性があります。

数日前、Joomla で同様の問題が発生しました。2.5 テンプレート (jat3 テンプレート - 具体的には JA Portfolio) と自分で作成したスライダー モジュール。最初に、問題はモジュールが原因であると考えましたが、そうではありませんでした。

私のエラーはあなたに似ていました:

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

ご覧の通りエラーはほぼ同じで、やり方が違うだけですが今回の場合は関係ないと思います。このエラーは、プログラムが使用すべきライブラリを認識していないか、joomla によって上書き ($ 記号の参照) されているために、javascrips が競合する場合に発生しますが、場合によって異なります。

私は Virtuemart を使用したことがなく、テンプレートの使用にどのような種類の JavaScript が含まれているのかわからないことを認めなければなりませんが、あなたにとっての解決策は、次の行を配置することに集中することだと確信しています。

jQuery.noConflict();

..jQuery ライブラリが含まれている場合はいつでも。

.phpモジュールのメインファイルに次の数行を追加して問題を解決しました。

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

お気づきのように、最初の行に jQuery スクリプトを追加し、2 行目に静的関数を含めます。2 番目の関数をロードするファイルには 1 行しか含まれていませんjQuery.noConflict();

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

この例が役立つことを願っています

于 2013-01-20T16:19:55.140 に答える