jQueryをmootoolsなどの他のライブラリと干渉しないようにする方法まとめ

ブログとかのプラグインでよく分からず使ってる人もいるみたいですし。結論は一番上のやつやってればいいんですけど、というか、プラグインソースは全部こうなってないとだめなんですけど、古いソースコードはそうなっていないものもあったりして(thickboxとか)、思いつく方法全部書き出します。

カプセル化する(これだけやればOK

プラグインソースを

(function($) {
  // hogehoge
})(jQuery);

で囲むだけ。ソースコードは // hogehoge のところに入れてください。これは簡単に言うと、(function($) { })(jQuery); に囲まれた中では $ = jQuery として扱われるのですね。この中はソースコードの隠蔽が行われていて外からはよく見えなくなっているので、他のライブラリと干渉することもありません。

あとクラス振るとか、しましまテーブルとかそういう簡単なやつは自分で書いてると思いますが

$(function() {
  // hogehoge
});

こんなやつの中に書いてると思いますけど

jQuery(function($) {
  // hogehoge
});

こっちに変えてください。こっちは以前紹介したと思いますけど、そもそも

$(function() { });

っていうのは

$(document).ready(function() { });

の簡易版になってて(ソースコードが短くてすむ)、これの$をjQueryに置き換えたものが

jQuery(document).ready(function($) { });

でさらに短く戻して

jQuery(function($) { });

になるというわけです。

jQuery.noConflictを使う

jQueryが出た当初はこれがよく使われてましたなぁ

var $j = jQuery.noConflict();
$j("hoge").addClass("hage");

つまり$を$jと置き換えるんですね。

$をjQueryに置き換える

超手間がかかりますが $ を jQuery に置き換えていきます。え?一括置換すればいいやん、とか思ってる人はちょっと気をつけてください。正規表現とかjQueryの属性マッチングでも$は使われています。

一括置換したら動かなくなった、っていうのはよくありがちな話っぽいですよ。

jQueryを使わない

なんてことはないです。つまりjQueryを使わなければ干渉する心配もないのです。

jQueryだけを使う

その逆もその通りd(ry

何か役に立つことがあったらシェアしてみてください

このエントリーをはてなブックマークに追加

Comments: 2 - Leave a comment

  1. rew

    >$をjQueryに置き換える
    $( → jQuery(
    $. → jQuery.
    みたいな痴漢なら、正規表現の$とか$thisとかは省けるんじゃないですか?

    痴漢。

    1. nori

      ありがとう!確かに。痴漢は危険はやから慎重にやるんやで!

Leave a comment

Trackbacks: 0

Trackback URL for this entry
Listed below are links to weblogs that reference
jQueryをmootoolsなどの他のライブラリと干渉しないようにする方法まとめ from 5509

Author

nori
nori
- UI Engineer
Location
- ,