古いバージョンの jQuery (1.4) と新しいバージョン (1.11) を使用しているため、それらには 2 つの異なる名前空間があります。1.4 は標準の $ を使用し、1.11 は jQuery1111 を使用します。
現在、1.11 バージョンを使用する必要がある froala エディターを実装しようとしています。これを実現するために、froala コードを次のように変更しました。
(function (a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = function (b, c) {
return void 0 === c && (c = "undefined" != typeof window ? require("jquery") : require("jquery")(b)), a(c), c
} : a(jQuery)
}(function (a) {
...
}(window.jQuery1111)));
しかし、これによりエラーが発生しますa is not a function
(ただし、スクリプトは実行できるようです)。上記のスクリプトの 4 行目でエラーがキャッチされます。
a(jQuery)
4行目を変更するjQuery1111
とエラーなしで実行されますが、それが正しいかどうか、または後でバグが発生するかどうかはわかりません。
これは、サードパーティのコンポーネントをデフォルト以外の jQuery 名前空間に実装する正しい方法ですか?
更新: スクリプトの順序
中身<head />
<script src="/js/jquery.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var jQuery1111 = jQuery.noConflict(true);
window.jQuery1111 = window.jQuery1111 || jQuery1111;
</script>
中身<body />
<script type="text/javascript" src="/scripts/froala_editor.min.js"></script>