Prototypeを使用している従来のウェブサイトがあります。しかし、私はJQueryを使いたいと思っています。プロトタイプとJQueryを両方とも$
の符号よりも優先させると、同じページでどのように使用できますか?ウェブサイトのJQueryとプロトタイプが衝突しました
1
A
答えて
4
デフォルトでは、jQueryは「jQuery」のショートカットとして「$」を使用します。ただし、jQueryの後の任意の時点でjQuery.noConflict()を呼び出すことで、そのデフォルトをオーバーライドすることができ、他のライブラリが両方ともロードされます。たとえば:
<html>
<head>
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
jQuery.noConflict();
// Use jQuery via jQuery(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>
はElementenfresserの答えと同様に
1
http://docs.jquery.com/Using_jQuery_with_Other_Librariesが、私は)(jQuery.noConflictを使用しての上にそれをお勧めしたい参照します。すべての "$"を "jQuery"に変更する必要なく、すべてのjQueryコードをそのまま維持しながら、無名関数でjQueryコード全体をラップすることができます。
jQuery.noConflict();
(function($){
$("div").hide(); //will use jQuery
})(jQuery);
$("div").hide(); //will use prototype
jQuery("div").hide(); //will use jQuery again.
jQueryを使用しているすべてのjavascriptファイルを匿名機能でラップすることができます。 $をjQueryに変更する必要はありません。また、関数内で宣言されたすべての変数がグローバルスコープにアタッチされないため、アプリケーションのパフォーマンスが向上します。
2
.noConflict()
の方法のほかに、jQueryコードのスコープを設定することもできます。
<script>
(function($) {
//write your jQuery code here.
})(jQuery);
</script>
2
あなたには、いくつかの速記を使用することができるようにしたい場合は、
var j$ = jQuery.noConflict();
今あなたの代わりにjqueryのための$
のJ $を使用することができます