没有必要将 Sizzle 包含在 jQuery 构建中。它可以被删除...所有引用Sizzle.
的 jQuery 代码,您可以自己抓取/编译 jQuery(包括预先包含 Sizzle)并将其暴露给任何其他库(实际上并未将其包含在编译版本中,只是作为闭包编译器)。
这是将其保留为嵌入的选项,但将 Sizzle 公开以供外部使用:
如果您知道将使用 jQuery(依赖),只需在 jQuery 之后添加:
window.Sizzle = jQuery.find;
这会将 Sizzle 重新公开为您可以使用的属性。
这是从嵌入中删除 Sizzle 的手动版本:
在 jQuery(版本 1.4.3 链接)中,您会看到:
/*!
* Sizzle CSS Selector Engine - v1.0
* Copyright 2009, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
* More information: http://sizzlejs.com/
*/
(function(){
//...
//lots of code!
//...
// EXPOSE
jQuery.find = Sizzle;
jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.filters;
jQuery.unique = Sizzle.uniqueSort;
jQuery.text = Sizzle.getText;
jQuery.isXMLDoc = Sizzle.isXML;
jQuery.contains = Sizzle.contains;
})();
仅将该部分替换为:
(function(){
// EXPOSE
jQuery.find = Sizzle;
jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.filters;
jQuery.unique = Sizzle.uniqueSort;
jQuery.text = Sizzle.getText;
jQuery.isXMLDoc = Sizzle.isXML;
jQuery.contains = Sizzle.contains;
})();
然后你需要做的就是在jQuery之前包含Sizzle ,它会正常工作。
这是一个显示它工作的小提琴,包括直接来自 github 的 Sizzle,而不是嵌入在 jQuery 中。