0

私のhead.phtmlには、メニュー作業を取得するための次の宣言があります。

<script src="<?php echo $this->getJsUrl(); ?>lib/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="<?php echo $this->getJsUrl(); ?>jQuery_1205141001.js" type="text/javascript"></script>
<script src="<?php echo $this->getJsUrl(); ?>Common_1205141001.js" type="text/javascript"></script>
<script src="<?php echo $this->getJsUrl(); ?>lib/jquery.jcarousel.min.js" type="text/javascript"></script>

これで、メニューを操作できるようになりましたが、このため、詳細ページの [カートに追加] ボタンが壊れています。上記の参照を削除すると、 [カートに追加] ボタンが復元されます。プロトタイプ.jsとjqueryの競合に関するさまざまな質問を見て、次のことを試しました

  1. まずjQuery.noConflict();jquery-1.4.2.min.jsの最後に追加してみましたがうまくいきませんでした。また、メニューを壊しました
  2. 次に、jQuery.noConflict();クエリ ファイルの先頭に jQuery_1205141001.js と Common_1205141001.js を追加してみました。それも助けにはなりませんでした。

両方を機能させる方法を教えてください。このLINKにアクセスしてライブ テストを行うことができます。ここでは、メニューが機能していることがわかりますが、[カートに追加] が壊れています。

:- Superfish.js や jquery デバッガーに表示されるその他のエラーとは関係ありません。

4

5 に答える 5

4
<script src="<?php echo $this->getJsUrl(); ?>lib/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="<?php echo $this->getJsUrl(); ?>jQuery_1205141001.js" type="text/javascript"></script>
<script src="<?php echo $this->getJsUrl(); ?>Common_1205141001.js" type="text/javascript"></script>
<script src="<?php echo $this->getJsUrl(); ?>lib/jquery.jcarousel.min.js" type="text/javascript"></script>
<script type="text/javascript">
  $.noConflict(); //Use no conflict here instead of js file
  // Code that uses other library's $ can follow here.
</script>

詳細はリンク先へ。
http://api.jquery.com/jQuery.noConflict/

于 2012-06-24T08:27:11.347 に答える
1

正しく動作させるには、この順序で異なる .js ファイル/コードを呼び出さなければならなかったことを覚えているようです。

  1. jquery.js
  2. 衝突のない呼び出し
  3. プロトタイプ.js

これを試してみましたか?

他のいくつかの質問の答えのようです:

奇妙な Chrome プロトタイプ/jQuery の競合

noconflictでjqueryを使用するmagento

于 2012-06-24T08:18:57.407 に答える
0

「競合なし」の方法を試しましたが、うまくいきませんでした。

結局、私はそれを必要としませんでした。

2時間いじくり回した後、問題をどのように解決したかを次に示します。

導入しようとしている競合する JavaScript ファイルが、/app/design/frontend/YOURTHEME/YOURCHILDTHEME/template/page/html/head.phtml で呼び出される最後の JavaScript であることを確認してください。

私の場合、導入しようとしていた厄介なファイルは「jquery-1.4.2.min.js」でした。

これがデフォルトのスクリプト「jquery-1.7.1.min.js」と競合した可能性があるという予感があります。

于 2013-08-20T14:21:00.750 に答える
0

これは機能します:

$.noConflict();
jQuery(document).ready(function($) {});
于 2013-01-16T03:30:09.137 に答える