私は Fancybox を使用する Wordpress プラグインを持っていますが、バージョンを使用するテーマと Fancybox プラグインを持っている人もいます。
これらのバージョンを使用しようとすると、異なるバージョンの Fancybox に合わせてカスタム コードを作成する必要があります。これを避けるために、新しいバージョンの Fancybox をプラグインに組み込み (必要な場合のみ)、新しい jQuery 属性名 ( ではない$.fancybox
) に設定することにしました。
オリジナルのfancyboxソースを変更し、次の関数を追加しました。
var jQueryCrayon = jQuery;
fancyboxInit(window, document, jQueryCrayon, 'crayonFancybox');
fancyboxInit
$.crayonFancybox
は私のカスタム バージョンの fancybox で初期化され、スクリプトは の代わりにこれを使用します。これには$.fancybox
、他のユーザーが持っているテーマ/プラグインによってロードされた古いバージョンの Fancybox が含まれます。これにより、2 つのバージョンが関数をオーバーライドし、$.fancybox
あいまいな結果と競合することを回避できます。
以前に尋ねられたこの質問を見つけることができないので、議論のためにここに含めました。これがそのようなケースを処理する最善の方法ですか、それとも代替手段を探す必要がありますか? jQueryにもあります$.noConflict()
が、これには、スクリプトのエンキュー順序をテーマや他のプラグインのエンキュー順序と仮定することが含まれます。これにより、同じエンキュー優先度が指定され、あいまいさが生じる可能性があります。