web-dev-qa-db-ja.com

画像スライダーがホーム以外のメニュー項目で動かなくなる。

Joomla 3.3.1でDJ Image Sliderを使用して、アニメーションバナーを取得します。モジュールは両方のホームページ(バイリンガルのWebサイト)で正常に機能しますが、最初のスライドが読み込まれるが、モジュールは静的なままである他のすべてのメニュー項目ではありません。「自動スライド」も他のスライドに移動することもできません。 。 (あなたは私の意味を見ることができます ここ

この問題の原因がわかりません。何か案が ?

あなたの助けをありがとう!

1
MagTun

これはjsの問題ですが、これを手動でデバッグすることもできますが、時間がかかる場合があります。私は過去にこの画像スライダーを使用しており、jsの競合にいくつかの問題がありましたが、解決できました-以下を参照してください。

問題を解決するには、 this plugin を使用してみてください。そのプラグインは、jQueryライブラリの不要な複数の発生を削除します-あなたの問題かもしれませんか?

プラグインを使用すると、次のことが可能です。

  • フロントエンドで一時的にMooToolsライブラリを無効にします。
  • テンプレートから単一ページまで、サイトの特定の部分でプラグインを有効または無効にします。
  • レポートを使用して、プラグインエンジンが実行した内容に関するフィードバックを取得します。
  • スクリプトとスタイルシートを追加または削除します。
  • ページに加えられた変更によって残された空白行を削除します。
  • 一部のライブラリが削除されるのを防ぎます。
  • デフォルトでのエンジンの動作を変更します(noConflict()コードを追加または削除しないでください...)。

プラグイン設定の構成で使用可能なすべてのオプションを試してください(jsのバージョンなどが異なる)。

お役に立てれば。

2
jonboy

これを論理的に考えてみましょう。ホームページでは正常に機能しますが、他のページでは機能しません。

これは、他のページにロードされている別のスクリプトが問題を引き起こしていることを意味している可能性があります。どこかにタグが欠落している可能性があります。他のページに関連付けられている各拡張機能を1つずつ無効にする(アンインストールしない)のが最善です。各拡張機能を無効にした後、ページを更新して、問題が引き続き発生するかどうかを確認します。スクリプトが他のすべてのページで異なる順序でロードされていることを考慮することもできます。

これを行う前に、おそらく、これは次の事実が原因であると思われます:

/modules/mod_djimageslider/assets/powertools-1.2.0.js

読み込み中これ:

/modules/mod_djmenu/assets/js/jquery.djmenu.js

Powertoolsはカスタムイベントの作成に使用されるため、djmenu.jsはイベントを作成しようとしていますが、ファイルがまだロードされていないため作成できません。

2
Lodder

何らかの理由で、JavaScriptファイルが他のページに読み込まれず、ホームにのみ読み込まれます。これはあなたが持っているjsエラーです: "Uncaught TypeError:オブジェクトは関数ではありませんUncaught ReferenceError:DJImageSliderModule is not defined"テンプレートのindex.phpにこの行があることを確認してください:

または、ページのテンプレート設定を確認してください。これは、私が今考えることができる最初の2つのことです。

1
Eva Farkasne

このような問題のデバッグには、いくらかの作業と時間が必要であり、通常、サイトへのアクセスは非常に役立ちます。

現在、フロントエンドを確認する時間はあまりありません。

あなたが試すことができるいくつかのことは次のとおりです。

  1. jsライブラリの複数のインスタンスがあるかどうかを確認します。 jQueryがロードされて無効になり、1つのロードのみが残ります。

  2. 他の拡張機能を無効にして、それらのいずれかが互いに競合していないか確認してください。それらが私たちにそのような問題を引き起こす場合、時々私たちはいくつかの拡張機能を残さなければなりません。

外部リンク
jsの問題の特定とトラブルシューティングに関する適切な情報を備えたいくつかのリソース jQueryの解決/ MootoolsがjQuery-easy-plugin と競合する問題 jQueryの競合を解決する方法

1
FFrewin

おそらく複数のjqueryが、JavaScriptファイルの理由または誤った宣言です。テンプレートページの上部で、headタグの間にこれを試すことができます。

<?php
    // load jQuery, if not loaded before 

    if(!JFactory::getApplication()->get('jquery')){
    JFactory::getApplication()->set('jquery',true);
    $document = JFactory::getDocument();
    $document->addScript(JUri::root() . "templates/template-name/js/jquery.js");
    }
?>

それはあなたを助けるかもしれません。ありがとう。

0
Shiplu