2

私は 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()が、これには、スクリプトのエンキュー順序をテーマや他のプラグインのエンキュー順序と仮定することが含まれます。これにより、同じエンキュー優先度が指定され、あいまいさが生じる可能性があります。

4

0 に答える 0