概要
レガシーなコードを受け継いできたプロジェクトに散見される jQuery.noConflict 。現在は使用するメリットはほぼなく、むしろデメリットとなっている。jQuery 自体の不要論はさておき、この 1 行を排除していきたいと考えている。
使われていた理由
競合するライブラリとして主に Prototype.js があったため、jQuery を使用する場合、$の競合を避けるためにjQuery.noConflict()が使用されていた。jQuery 自身の$を使用しないようにすることで、競合を避けていた。
当初は Prototype.js や jQuery を併用することが珍しくなかったため、このような対応が必要であった。しかし、現在は Prototype.js は完全に使用されなくなっており、jQuery.noConflict()は必要なくなっている。
使い方
jQuery.noConflict()は、さまざまな方法で使用されているが、以下のように使われることが多い。
jQuery.noConflict();
(function ($) {
console.log("Hello");
})(jQuery);また、変数に入れて使用することもある。
var $j = jQuery.noConflict();
$j("#hoge").fadeIn();