我很确定必须以其他形式提出此问题,但搜索$符号不会产生任何结果。
我已经制作了一个大系统,并广泛使用jQuery,用$引用它。此时,我不想回去。
我的问题是,现在我已经实现了CKEditor,它也像许多其他JavaScript框架一样用$引用自己。所以现在我遇到了很多冲突:
Uncaught TypeError: cannot get property 'any_function' of undefined
我不想通过CKEditor代码,搜索和替换,因为我将来会更新。我也想继续使用$ for jQuery,但没有别的。
当然我不能简单地使用:
$.noConflict()
不破坏我的剧本。
有没有办法让我可以随时使用$ for jQuery,同时让我的JavaScript框架在内部使用$?
这里最好/最简单的解决方案是什么?
答案 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重新分配给另一个变量并仅使用该变量更具可持续性。