2

更新の問題のために変更したくないコードベースを持つアプリケーションのプラグインを使用しています。

アプリケーションはヘッダーにJquery1.3.2を含めており、サイト全体で頻繁に使用しています。これについては考えずに、バージョン1.8.0を使用してプラグインを作成しましたが、これにより元のアプリケーションの機能が台無しになっていることがわかりました。

noConflictメソッドを実装しようとしましたが、成功しませんでした。

# Site loads jQuery1.32 and other jQuery plugins

# My awesome php & html code

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.js"></script>
<script type="text/javascript">
var $jq = jQuery.noConflict(true);  
$jq.DoSomeJQueryStuff();
</script>

このシナリオでnoConflictを実装するにはどうすればよいですか?

4

2 に答える 2

1

noConflict()どちらか先に来る方(または両方)に電話をかけたいと思うでしょう。最初に呼び出すことなく、以下のスクリプト定義を含めるまでに、すでに「競合」が発生しています。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
   var $jQ180 = jQuery.noConflict(true);
   document.write($jQ180().jquery); // 1.8.0
</script>​

...

<script type="text/javascript" src="http://code.jquery.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
    document.write($().jquery); // 1.3.2
</script>
于 2012-08-17T07:32:53.000 に答える
0

私はそれがあなたが必要とするこのような何かだと思います。

リンクがこの順序で追加されると仮定すると、次のようになります。

  1. jquery-1.3.2.js
  2. jquery-1.8.0.js

私たちはこれを持っています:

jQuery.noConflict();

// here you can execute javascript with jquery version 1.3.2
console.log($.fn.jquery);


jQuery(function($){
    // here you can execute javascript with jquery version 1.8.0
    console.log($.fn.jquery);
});

このJsfiddleに例があります。

于 2012-08-17T08:43:37.613 に答える