我有一个使用Fancybox的Wordpress插件,但有些人拥有使用版本的主题和Fancybox插件。
尝试使用这些版本意味着我需要编写自定义代码以匹配不同版本的Fancybox。为了避免这种情况,我决定将我的新版本Fancybox与我的插件一起包含(仅在我需要时)并将其设置为新的jQuery属性名称(不是$.fancybox
)。
我modified the orignal fancybox来源并添加了此功能:
var jQueryCrayon = jQuery;
fancyboxInit(window, document, jQueryCrayon, 'crayonFancybox');
fancyboxInit
将使用我的自定义版本的fancybox初始化$.crayonFancybox
,我的脚本将使用此代替$.fancybox
,其中包含由其他主题/插件加载的旧版Fancybox用户有。这避免了两个版本覆盖$.fancybox
函数并与模糊结果冲突。
由于我以前找不到这个问题,所以我把它放在这里讨论。这是处理这种情况的最佳方式,还是我应该寻找替代方案? jQuery也有$.noConflict()
,但这涉及到我的脚本的排队顺序与主题和其他插件的排队顺序的假设,这可能指定相同的排队优先级并导致歧义。