会议目前在matrix.org平台上举行。
会议分钟可以在会议上找到。jquery.org。
最新版本的jQuery可在https://jquery.com/download/上找到。
版本 | 分支 | 地位 |
---|---|---|
4.x | 主要的 | beta |
3.x | 3.x稳定 | 积极的 |
2.x | 2.x稳定 | 不活动 |
1.x | 1.x稳定 | 不活动 |
一旦发布4.0.0最终,3.x分支将继续在有限的时间内接收更新。不再支持2.x和1.x分支。
Herodevs可以提供对非活动版本的商业支持。
了解有关我们版本支持的更多信息。
本着开源软件开发的精神,jQuery总是鼓励社区法规贡献。为了帮助您入门,在进入编写代码之前,请务必详细阅读这些重要的贡献指南:
GitHub问题/PR通常通过gh-NUMBER
引用,其中NUMBER
是问题/PR的数值ID。您可以在https://github.com/jquery/jquery/issues/NUMBER
下找到此类问题/PR。
Jquery过去使用了其他基于TRAC的错误跟踪器,在Bugs.jquery.com下可用。它仅在读取模式下保存,以便可以参考过去的讨论。当jQuery源引用其中一个问题时,它使用模式trac-NUMBER
,其中NUMBER
是问题的数值ID。您可以根据https://bugs.jquery.com/ticket/NUMBER
找到这样的问题。
要构建jQuery,您需要拥有最新的node.js/npm和git 1.7或更高版本。较早的版本可能会起作用,但不受支持。
对于Windows,您必须下载并安装git and node.js。
MacOS用户应安装自制。安装了自制酿造后,运行brew install git
以安装Git,然后brew install node
安装Node.js。
Linux/BSD用户应使用其适当的软件包经理安装git和node.js,或者如果您这样摆动,则从源构建。轻松。
首先,克隆jQuery Git Repo。
然后,输入jQuery目录,安装依赖项并运行构建脚本:
cd jquery
npm install
npm run build
jQuery的构建版本将放置在dist/
DIRECTORY,以及缩小的副本和关联的地图文件。
要构建JQuery的所有变体,请运行以下命令:
npm run build:all
这将创建JQUERY在版本中包含的所有变体,包括jquery.js
, jquery.slim.js
, jquery.module.js
和jquery.slim.module.js
沿其相关的缩小文件和源说。
jquery.module.js
and jquery.slim.module.js
是eCMAScript模块,将导出jQuery
和$
作为命名出口的eCmascript模块放置在dist-module/
Directory,而不是dist/
Directory中。
构建脚本可用于创建jQuery的自定义版本,该版本仅包括您需要的模块。
除core
外,任何模块都可以排除在外。当排除selector
时,未将其删除,而是用本机querySelectorAll
周围的小包装替换(有关更多信息,请参见下文)。
要查看构建脚本可用选项的完整列表,请运行以下内容:
npm run build -- --help
要排除模块,请将其相对于src
文件夹(没有.js
扩展名)的路径传递到--exclude
选项。当使用--include
选项时,默认包含将被删除,并且仅使用这些模块创建构建。
一些可以排除或包括的示例模块是:
AJAX :所有AJAX功能: $.ajax()
, $.get()
, $.post()
, $.ajaxSetup()
,. .load()
,transports和ajax event shorthands,例如.ajaxStart()
。
AJAX/XHR :仅XMLHTTPREQUEST AJAX运输。
ajax/脚本: <script>
Ajax仅运输;用于检索脚本。
AJAX/JSONP :仅JSONP AJAX运输;取决于Ajax/脚本传输。
CSS : .css()
方法。还取决于CSS(包括效果,维度和偏移)。
CSS/showHide :non-Animated .show()
,. .hide()
和.toggle()
;如果您使用类或explicit .css()
调用来设置display
属性,则可以排除。还删除了效果模块。
弃用:记录为弃用但尚未删除的方法。
尺寸: .width()
和.height()
方法,包括inner-
和outer-
变化。
效果: .animate()
方法及其速记,例如.slideUp()
或.hide("slow")
。
事件: .on()
和.off()
方法和所有事件功能。
事件/触发器: .trigger()
和.triggerHandler()
方法。
偏移: .offset()
,. .position()
,. .offsetParent()
,. .scrollLeft()
和.scrollTop()
方法。
wrap : .wrap()
,. .wrapAll()
,. .wrapInner()
和.unwrap()
方法。
核心/准备就绪:如果将脚本放置在身体末端,则排除现成的模块。与jQuery()
绑定的任何现成回调都将立即被调用。但是, jQuery(document).ready()
将不是一个函数,并且不会触发类似的.on("ready", ...)
。
延期:排除jQuery.deferred。这也排除了所有依赖于延期的模块,包括AJAX ,效果和队列,但用Core/Ready-No-No deferred代替Core/Ready 。
出口/全局:排除窗口的全局jQuery变量($和jQuery)的附件。
出口/AMD :排除AMD定义。
选择器:完整的jQuery选择器引擎。当排除此模块时,它将用基于浏览器的querySelectorAll
方法替换为基本的选择器引擎,该方法不支持JQuery Selector扩展或增强的语义。有关详细信息,请参见Selector-native.js文件。
注意:不包括完整的selector
模块还将排除所有jQuery Selector扩展名(例如effects/animatedSelector
和css/hiddenVisibleSelectors
)。
您可以为jQuery的AMD定义设置模块名称。默认情况下,它设置为“ jQuery”,它可以在插件和第三方库中效果很好,但是您可能想更改此插件。将其传递到--amd
参数:
npm run build -- --amd= " custom-name "
或者,要匿名定义,请将名称留为空白。
npm run build -- --amd
构建jQuery文件的默认名称是jquery.js
;它位于dist/
目录下。可以使用--filename
和使用--dir
目录更改文件名。 --dir
相对于项目根。
npm run build -- --slim --filename= " jquery.slim.js " --dir= " /tmp "
这将创建一个苗条的jQuery版本,并将其放在tmp/jquery.slim.js
下。
默认情况下,jQuery生成常规脚本JavaScript文件。您还可以使用--esm
参数生成eCmascript模块将jQuery
导出为默认导出:
npm run build -- --filename=jquery.module.js --esm
默认情况下,jQuery取决于全局window
。对于没有一个环境,您可以生成一个工厂构建,该工厂构建可以将功能接受window
作为一个可以在外部提供的参数(请参阅已发布的软件包的README
以供使用说明)。您可以使用--factory
参数生成这样的工厂:
npm run build -- --filename=jquery.factory.js --factory
可以将此选项与其他其他人(例如--esm
或--slim
混合在一起:
npm run build -- --filename=jquery.factory.slim.module.js --factory --esm --slim --dir= " /dist-module "
使用npm run build
创建自定义构建,列出要排除的模块。不包括顶级模块还不包括其相应的模块目录。
排除所有AJAX功能:
npm run build -- --exclude=ajax
不包括CSS取决于CSS:效果,偏移,尺寸。
npm run build -- --exclude=css
排除一堆模块( -e
是--exclude
的别名):
npm run build -- -e ajax/jsonp -e css -e deprecated -e dimensions -e effects -e offset -e wrap
有一个特殊的别名来生成与官方jQuery Slim构建相同配置的构建:
npm run build -- --filename=jquery.slim.js --slim
或者,将Slim构建作为ESM模块创建:
npm run build -- --filename=jquery.slim.module.js --slim --esm
非官方自定义构建未定期测试。使用它们自身的风险。
确保您有必要的依赖性:
npm install
在您工作时开始npm start
自动构建jQuery:
npm start
使用支持PHP的本地服务器运行单元测试。确保您从根目录运行站点,而不是“测试”目录。无需数据库。预先配置的PHP本地服务器可用于Windows和Mac。以下是一些选择:
由于源代码是由GIT版本控制系统处理的,因此了解使用的某些功能很有用。
如果您想将工作目录清除回上游状态,则可以使用以下命令(请记住,您所工作的所有内容都在这些之后消失了):
git reset --hard upstream/main
git clean -fdx
对于功能/主题分支,您应始终使用--rebase
标志来git pull
,或者如果您通常要处理许多临时性“要在github pull request”分支“请运行以下以自动化以下操作:
git config branch.autosetuprebase local
(有关更多信息,请参见man git-config
)
如果您在合并时会得到合并冲突,而不是手动编辑冲突文件,则可以使用功能git mergetool
。即使默认工具xxdiff
看起来很糟糕/旧,但它也很有用。
以下是可以在那里使用的一些命令:
Ctrl + Alt + M
尽可能多b
跳到下一个合并冲突s
更改冲突线的顺序u
撤消合并left mouse button
- 标记一个块成为获胜者middle mouse button
- 标记一行成为获胜者Ctrl + S
保存Ctrl + Q
退出 expect ( numAssertions ) ;
stop ( ) ;
start ( ) ;
注意:在此测试套件中,Qunit最终添加了停止/开始的参数,因此可以将启动和停止作为回调传递而不必担心其参数。
ok ( value , [ message ] ) ;
equal ( actual , expected , [ message ] ) ;
notEqual ( actual , expected , [ message ] ) ;
deepEqual ( actual , expected , [ message ] ) ;
notDeepEqual ( actual , expected , [ message ] ) ;
strictEqual ( actual , expected , [ message ] ) ;
notStrictEqual ( actual , expected , [ message ] ) ;
throws ( block , [ expected ] , [ message ] ) ;
请参阅测试/数据/testinit.js。
q ( ... ) ;
例子:
q ( "main" , "foo" , "bar" ) ;
=> [ div # main , span # foo , input # bar ]
t ( testName , selector , [ "array" , "of" , "ids" ] ) ;
例子:
t ( "Check for something" , "//[a]" , [ "foo" , "bar" ] ) ;
fireNative ( node , eventType ) ;
例子:
fireNative ( jQuery ( "#elem" ) [ 0 ] , "click" ) ;
url ( "some/url" ) ;
例子:
url ( "index.html" ) ;
=> "data/index.html?10538358428943"
url ( "mock.php?foo=bar" ) ;
=> "data/mock.php?foo=bar&10538358345554"
有些测试可能需要标准测试固定装置以外的文档,并且可以在单独的iFrame中运行。实际的测试代码和断言保留在JQuery的主要测试文件中;仅应将最小测试固定标记和设置代码放置在iFrame文件中。
testIframe ( testName , fileName ,
function testCallback (
assert , jQuery , window , document ,
[ additional args ] ) {
...
} ) ;
这加载了一个页面,使用文件名构建URL "./data/" + fileName
。 iframed页面通过在startIframeTest( [ additional args ] )
的情况下包括“/test/data/iframetest.js”脚本来确定测试中回调何时发生在测试中。通常,这将是在文档准备就绪或window.onload
之后进行的。
testCallback
接收由testIframe
为此测试创建的QUNIT assert
对象,然后从iframe中进行全局jQuery
, window
和document
。如果iframe代码将任何参数传递到startIframeTest
,则遵循document
参数。
如果您有任何疑问,请随时在开发的JQuery Core论坛或Libera上的#JQuery中询问。