-1

私はいくつかのライブラリを結合しようとしています - それらのいくつかはprototype.jsに依存し、いくつかはjQueryに依存しています。

ライブラリの両方のグループは、それぞれプロトタイプと jQuery で定義されているように、「$」を使用します。

ライブラリの各セットが正しい $ を参照していることを確認する方法はありますか? コード内の両方のライブラリ セットから関数を呼び出せるようにしたいと考えています。

4

1 に答える 1

4

クロージャの使用:

(function($) {
    //jQuery stuff
      $('.elem') // $ refers to jQuery
})(jQuery);

それ以外の場合は、jQuery noConflict を使用します。

<!-- Putting jQuery into no-conflict mode. -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>

var $j = jQuery.noConflict();
// $j is now an alias to the jQuery function; creating the new alias is optional.

$j(document).ready(function() {
    $j( "div" ).hide();
});

// The $ variable now has the prototype meaning, which is a shortcut for
// document.getElementById(). mainDiv below is a DOM element, not a jQuery object.
window.onload = function() {
    var mainDiv = $( "main" );
}

</script>

これを拡張するには、jQuery のものに 'j' のようなものを使用し、プロトタイプのドル記号を保持することができます。

var j = jQuery.noConflict();

// Do something with jQuery
j( "div p" ).hide();

// Do something with another library's $()
$( "content" ).style.display = "none";
于 2013-10-22T17:01:11.377 に答える