2

我有一个使用 Fancybox 的 Wordpress 插件,但有些人有使用版本的主题和 Fancybox 插件。

尝试使用这些版本意味着我需要编写自定义代码来匹配不同版本的 Fancybox。为了避免这种情况,我决定在我的插件中包含我较新版本的 Fancybox(仅当我需要它时)并将其设置为新的 jQuery 属性名称(不是$.fancybox)。

修改了原来的fancybox源并添加了这个功能:

var jQueryCrayon = jQuery;
fancyboxInit(window, document, jQueryCrayon, 'crayonFancybox');

fancyboxInit将使用我的自定义版本的 fancybox 进行初始化$.crayonFancybox,我的脚本将使用它而不是$.fancybox,它将包含由其他用户拥有的主题/插件加载的旧版本的 Fancybox。这避免了两个版本覆盖$.fancybox函数并与模棱两可的结果冲突。

由于我之前找不到这个问题,因此我将其包含在此处以供讨论。这是处理这种情况的最佳方法,还是我应该寻找替代方法?jQuery 也有$.noConflict(),但这将涉及对我的脚本的入队顺序与主题和其他插件的假设进行假设,这可能会指定相同的入队优先级并导致歧义。

4

0 回答 0