避免与jQuery冲突

时间:2016-02-01 16:43:04

标签: javascript jquery frameworks conflict

我很确定必须以其他形式提出此问题,但搜索$符号不会产生任何结果。

我已经制作了一个大系统,并广泛使用jQuery,用$引用它。此时,我不想回去。

我的问题是,现在我已经实现了CKEditor,它也像许多其他JavaScript框架一样用$引用自己。所以现在我遇到了很多冲突:

Uncaught TypeError: cannot get property 'any_function' of undefined

我不想通过CKEditor代码,搜索和替换,因为我将来会更新。我也想继续使用$ for jQuery,但没有别的。

当然我不能简单地使用:

$.noConflict()

不破坏我的剧本。

有没有办法让我可以随时使用$ for jQuery,同时让我的JavaScript框架在内部使用$?

这里最好/最简单的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

您可以将任意一组代码包装在IIFE中,并将相关对象传递给它。

(function($) {
  // Code that uses jQuery
})(jQuery);

我还建议在加载CKEditor后立即将CKEditor分配给其他东西,以便您可以遵循CKEditor代码的类似模式。

// Right after loading CKEditor
var CKEditor = $;

// Code that uses CKEditor
(function($) {
   ...
})(CKEditor);

虽然将CKEditor重新分配给另一个变量并仅使用该变量更具可持续性。