2017-08-20 34 views
0

私のウェブサイトに悩まされていました。jQueryの2つのライブラリ間の競合

1.5.1と他の3.2.1の2つのjqueryライブラリを使用しています。 jQueryの最新バージョンのために私は

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
     var inst = jQuery.noConflict(); 
</script> 

すべてがOKであるモードをnoConflict使用していますが、顧客は私のウェブサイト上で市平方法を選択された場合はエラーとdoesntの仕事他の私のスクリプトを示しています。

enter image description here

しかし、jQueryライブラリ3.2.1 noConflictモードにする必要があります。そして、ウェブサイトの他のページにも矛盾やエラーはありません。

私はこの問題をどのように修正できるかわかりません。

おかげ

+0

「noConflict」に 'true'を渡す必要があるかもしれません。さまざまなバージョンの使用についてはhttps://api.jquery.com/jquery.noconflict/の文書の注意事項を参照してください(推奨しません)。また、そのような状況でjQuery名を放棄する可能性もあります。 – pinkfloydx33

+0

私はなぜそれを知っていませんが、私が本当にそれを使用すると、全く動作しません。 – Coddy

答えて

0

jQueryの.live()は、バージョン1.9以降で削除されました。

ですから、変更する必要があります。

.live(events, function) 

はにマップする必要があります。

以下
.on(eventType, selector, function) 

参考リンクです:

http://api.jquery.com/on/

のための10

ページはon()に変換する方法を示しています。

http://api.jquery.com/live/

更新:

あなたはnoConflict(true)でのjQueryを解放することができます。けれどもあなたはこのルートを取る場合、あなたは間違いなく$jQueryもないとしてエイリアスをお勧めします:

var jq = jQuery.noConflict(true); 

それとも、このように行うことができますことがあります、あなたはjqueryの関数を呼び出すことができ

var jq = $.noConflict(); 

jqとなります。

jq('#selector'); 
+0

彼は1.5.1 **と** 3.2.1を使用しているので、彼は 'live'が利用可能であると期待しています。両方のバージョンを使用してページを動作させることは、問題のポイントであると思われます(アップグレードする方法ではありません)。彼らのドキュメントによれば、おそらくnoConflictに真実を伝えるだけです。複数のバージョンを使用することはお勧めしませんが、可能性があります。 – pinkfloydx33

+0

あなたが正しいです。ですから、あなたは 'true'を渡すこともできますし、更新された答えに私が示唆している代替策もあります。 –

+0

私はlive()が削除されていることを知っています。したがって、2つのjQueryライブラリを使用しています。そのうちの1つは1.5.1です。 2番目のjQueryライブラリがエラーをスローしている理由はわかりませんが、noConflictモードにする必要があります。そしてこのモードは、1ページを除いて私のウェブサイトの他のページで完璧に機能します。 – Coddy

関連する問題