1

Web ページにアコーディオン メニューと lightwindow スクリプトがあります。後者を削除するとlightwindowスクリプトが機能するため、アコーディオンスクリプトが原因でlightwindowスクリプトが機能しません。競合が発生する必要がありますが、何ですか?

これが私のページのヘッドセクションです:

<!-- lightwindow files -->
<script type="text/javascript" src="lightwindow/javascript/prototype.js"></script>
<script type="text/javascript" src="lightwindow/javascript/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="lightwindow/javascript/lightwindow.js"></script>
<link rel="stylesheet" href="lightwindow/css/lightwindow.css" type="text/css" media="screen" />


<!-- accordion scripts -->
<script src="js/jquery-1.2.1.min.js" type="text/javascript"></script>
<script src="js/menu.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/accordion.css" />

お時間をいただきありがとうございます。

乾杯

トチロー

4

5 に答える 5

3

http://docs.jquery.com/Core/jQuery.noConflictで説明されている jQuery.noConflict メソッドを使用する必要があります。

ただし、バージョン 1.2.1 に含まれるかどうかは定かではありません。

配線方法については、そのページの説明をお読みください。まず、他のライブラリの前に jQuery を配置する必要があります。

更新: 修正の適用に役立つ以下のコードを追加しました。jQuery.noConflict() の行でエラーが発生する場合は、新しいバージョンの jQuery を試す必要があるかもしれません。

<script src="js/jquery-1.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript"> jQuery.noConflict() </script>

<!-- lightwindow files -->
<script type="text/javascript" src="lightwindow/javascript/prototype.js"></script>
<script type="text/javascript" src="lightwindow/javascript/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="lightwindow/javascript/lightwindow.js"></script>
<link rel="stylesheet" href="lightwindow/css/lightwindow.css" type="text/css" media="screen" />


<!-- accordion scripts -->
<script src="js/menu.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/accordion.css" />

また、コードの一部を $(...) から jQuery(...) に交換する必要がある場合があることに注意してください

jQuery doc ページから:

$("div p") を実行していた場所で、jQuery("div p") を実行する必要があります。

于 2009-03-27T18:22:33.857 に答える
1

jQuery.noConflict(); を追加すると、- また、jQuery スクリプトに入り、すべての $ 変数を jQuery に交換する必要があります

于 2010-11-12T20:03:44.573 に答える
1
<script type="text/javascript"> jQuery.noConflict() </script> 

この小さなトリックが私にとって驚異的に機能したことを言いたかっただけです。クロノフォームを使用している場合、これはおそらく JavaScript の問題に対する答えです。

「完了しましたが、ページにエラーがありました」ということはもうありません。

再度、感謝します

于 2010-05-11T02:08:59.400 に答える
0

両方のライブラリで同じ名前のメソッド/関数が定義されている可能性があります。

メソッド/関数名が重複していない場合は、グローバル変数名が重複していないか確認してください。

互いに上書きするメソッドをドキュメントに追加しようとすると、何度か競合に遭遇しました。

于 2009-03-27T18:18:08.347 に答える
0

ほとんどの場合、JQuery と Prototype の間に競合があります。どちらもたとえば $ を定義します。

JQuery には、競合を回避するために有効にできる互換モードがあります。

于 2009-03-27T18:21:37.183 に答える