jQueryのプラグインの話を進める前に、prototype.jsやYahoo!UI(YUI)など他のコードを併用する場合の注意点と作法をみておきます。
ライブラリと名前の衝突
以前、YUIの
ネームスペース の記事でも書きましたが、 ライブラリなどの再利用を目的とするコードに、グローバルな変数や配列がいくつも存在する場合には、 スクリプト内のそれらをすべて把握せずに利用すると、意図せずに大事なデータを書き換えてしまうリスクを抱え込むことになります。
jQueryでは、jQuery以外のコードとの名前の衝突(変数名や関数名など)を避けるために、グローバルな領域に露出している名前は、 「jQuery」と「$」のわずかふたつだけに抑えるように配慮されています。
このネームスペースの考え方は、
前回試した、jQueryの拡張方法として 用意されたプラグインでも、原則的に「jQuery.fn」以下へ作成することで守られています。
つまり、今後、jQueryで書かれたプラグインやUIを含めて、jQuery系のライブラリを利用するときは、 ネームスペースに関しては、このふたつのオブジェクトを軸に注意することになります。
とはいいながら、そんなjQueryでも、デフォルトのままで、もし、prototype.jsと 併用すると、ほぼ間違いなく不具合が発生します。
回避方法は後述しますが、少なくとも、prototype.jsとjQueryで使われている「$関数」(jQueryでは$ショートカット)が衝突するからです。
そこで、jQueryには、他のコードと併用する時の衝突を未然に避ける方法が提供されています。
次ページでは、まず、prototype.jsとjQueryのグローバルオブジェクトの構成についてみてみます。