我正在制作一个将分发给第三方的jQuery小部件。它非常简单,它将进行ajax调用并在页面上的div上放置一些内容。
有没有一种简单的方法可以在一个文件中为他们提供所需的一切,而不会发生名称空间冲突?
我知道我可以创建一个最小化jQuery,jQuery UI和我自己的代码的文件,但如果它们有其他版本的jQuery,则可能会产生冲突。 (例如,我可能将我的代码基于jQuery 1.7,并且出于某种原因他们可能正在运行jQuery 1.3。)那么我的问题有什么好的解决方案吗?
答案 0 :(得分:2)
我知道自从你发布这个问题已经有很长一段时间了,但是如果有人像我一样从google到这里,这就是你正在寻找的解决方案:
http://www.angrycoding.com/2011/09/managing-dependencies-with-requirejs.html
总结一下,您可以使用require仅为您的应用加载不同的jquery版本,因此它不会与旧代码冲突。
答案 1 :(得分:1)
您不应创建包含外部库的缩小版本。相反,请在README中明确说明您的依赖项。如果有人使用jQuery版本不足,那就太难了。
有关管理依赖关系的更一般方法,请查看require.js
答案 2 :(得分:1)
也许正在使用
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
$j("div").hide();
});
答案 3 :(得分:1)
您可以使用jquery.noconflict取消引用最后包含的jquery版本。
在您包含您的jquery版本之后,请执行以下操作:
var yournamespace = jQuery.noConflict();
然后使用类似于:
的命名空间代替$ jquery运算符yournamespace(“div p”)。hide();