تقام الاجتماعات حاليًا على منصة Matrix.org.
يمكن العثور على دقائق الاجتماع في MEANINGS.JQUERY.ORG.
يتوفر أحدث إصدار من JQuery على https://jquery.com/download/.
إصدار | فرع | حالة |
---|---|---|
4.x | رئيسي | بيتا |
3.x | 3.x مستقر | نشيط |
2.x | 2.x مستقر | غير نشط |
1.x | 1.x مستقر | غير نشط |
بمجرد إصدار 4.0.0 النهائي ، سيستمر فرع 3.x في تلقي التحديثات لفترة محدودة. لم تعد فروع 2.x و 1.x مدعومة.
يتوفر الدعم التجاري للإصدارات غير النشطة من Herodevs.
تعرف على المزيد حول دعم الإصدار لدينا.
بروح تطوير البرمجيات مفتوحة المصدر ، تشجع JQuery دائمًا مساهمة كود المجتمع. لمساعدتك في البدء وقبل القفز إلى رمز الكتابة ، تأكد من قراءة إرشادات المساهمة المهمة هذه بدقة:
عادة ما يتم الرجوع إلى قضايا GitHub/PRS عبر gh-NUMBER
، حيث يكون NUMBER
هو المعرف العددي للمشكلة/العلاقات العامة. يمكنك العثور على مثل هذه المشكلة/العلاقات العامة تحت https://github.com/jquery/jquery/issues/NUMBER
.
استخدم JQuery متعقب الأخطاء المختلفة - استنادًا إلى Trac - في الماضي ، متوفر تحت Bugs.jquery.com. يتم الاحتفاظ به في وضع القراءة فقط بحيث يكون الإشارة إلى المناقشات السابقة ممكنة. عندما يشير مصدر jQuery إلى إحدى هذه المشكلات ، فإنه يستخدم trac-NUMBER
، حيث يكون NUMBER
هو المعرف العددي للمشكلة. يمكنك العثور على مثل هذه المشكلة تحت https://bugs.jquery.com/ticket/NUMBER
.
لبناء jQuery ، تحتاج إلى الحصول على أحدث node.js/npm و git 1.7 أو أحدث. قد تعمل الإصدارات السابقة ، لكنها غير مدعومة.
بالنسبة لنظام التشغيل Windows ، يجب عليك تنزيل وتثبيت Git و Node.js.
يجب على مستخدمي MacOS تثبيت Homebrew. بمجرد تثبيت Homebrew ، قم بتشغيل brew install git
لتثبيت GIT ، وتثبيت brew install node
لتثبيت Node.js.
يجب على مستخدمي Linux/BSD استخدام مديري الحزم المناسبين لديهم لتثبيت Git و Node.js ، أو البناء من المصدر إذا كنت تتأرجح بهذه الطريقة. سهلة.
أولاً ، استنساخ jQuery git repo.
بعد ذلك ، أدخل دليل jQuery ، وتثبيت التبعيات ، وقم بتشغيل برنامج Build Script:
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
و jquery.slim.module.js
هي وحدات ecmascript التي تصدر jQuery
و $
كصادرات مسموحة في dist-module/
بدلاً من dist/
directory.
يمكن استخدام برنامج Build Script لإنشاء إصدار مخصص من JQuery يتضمن فقط الوحدات النمطية التي تحتاجها.
قد يتم استبعاد أي وحدة النمط باستثناء core
. عند استبعاد selector
، لم تتم إزالته ولكن يتم استبداله بلفاء صغير حول querySelectorAll
(انظر أدناه للحصول على مزيد من المعلومات).
للاطلاع على القائمة الكاملة للخيارات المتاحة لنص Build ، قم بتشغيل ما يلي:
npm run build -- --help
لاستبعاد الوحدة النمطية ، تمرير مسارها بالنسبة إلى مجلد src
(بدون امتداد .js
) إلى خيار --exclude
. عند استخدام خيار --include
، يتم إسقاط ما يتضمن الافتراضي ويتم إنشاء بناء مع تلك الوحدات النمطية فقط.
بعض وحدات المثال التي يمكن استبعادها أو تضمينها هي:
Ajax : جميع وظائف Ajax: $.ajax()
، $.get()
، $.post()
، $.ajaxSetup()
، .load()
، نقل الأحداث ، وأجاكس اختصار مثل .ajaxStart()
.
AJAX/XHR : نقل XMLHTTPREQUEST AJAX فقط.
AJAX/SCRIPT : نقل <script>
AJAX فقط ؛ تستخدم لاسترداد البرامج النصية.
AJAX/JSONP : نقل JSONP AJAX فقط ؛ يعتمد على النقل Ajax/Script.
CSS : طريقة .css()
. يزيل أيضًا جميع الوحدات النمطية اعتمادًا على CSS (بما في ذلك التأثيرات والأبعاد والإزاحة ).
css/showhide : غير معنوية .show()
، .hide()
و .toggle()
؛ يمكن استبعادها إذا كنت تستخدم فئات أو مكالمات صريحة .css()
لتعيين خاصية display
. يزيل أيضا وحدة التأثيرات .
تم إهمالها : الأساليب الموثقة على أنها تم إهمالها ولكن لم تتم إزالتها بعد.
الأبعاد : أساليب .width()
و .height()
، بما في ذلك الاختلافات inner-
outer-
.
الآثار : طريقة .animate()
واختزالها مثل .slideUp()
أو .hide("slow")
.
الحدث : أساليب .on()
و .off()
وجميع وظائف الحدث.
الحدث/الزناد : أساليب .trigger()
و .triggerHandler()
.
الإزاحة .offset()
.position()
.offsetParent()
.scrollLeft()
.scrollTop()
التفاف .wrap()
.wrapAll()
.wrapInner()
.unwrap()
Core/Ready : استبعاد الوحدة الجاهزة إذا قمت بوضع البرامج النصية الخاصة بك في نهاية الجسم. سيتم استدعاء أي عمليات استرداد جاهزة ملزمة بـ jQuery()
على الفور. ومع ذلك ، لن تكون jQuery(document).ready()
.on("ready", ...)
و.
مؤجل : استبعاد jquery.deferred. يستبعد هذا أيضًا جميع الوحدات النمطية التي تعتمد على مؤجل ، بما في ذلك AJAX ، التأثيرات ، وقائم الانتظار ، ولكنه يحل محل CORE/جاهز بالأساسي/الجاهز .
الصادرات/Global : استبعاد مرفق متغيرات jQuery العالمية ($ و jQuery) إلى النافذة.
الصادرات/AMD : استبعاد تعريف AMD.
المحدد : محرك محدد jQuery الكامل. عندما يتم استبعاد هذه الوحدة ، يتم استبدالها بمحرك محدد بدائي بناءً على طريقة querySelectorAll
للمتصفح التي لا تدعم ملحقات محدد jQuery أو دلالات محسّنة. راجع ملف Celector-native.js للحصول على التفاصيل.
ملاحظة : سوف يستبعد أيضًا وحدة selector
الكاملة جميع ملحقات محدد jQuery (مثل effects/animatedSelector
و css/hiddenVisibleSelectors
).
يمكنك تعيين اسم الوحدة النمطية لتعريف AMD الخاص بـ JQuery. بشكل افتراضي ، تم تعيينه على "jQuery" ، والذي يلعب بشكل جيد مع المكونات الإضافية ومكتبات الطرف الثالث ، ولكن قد تكون هناك حالات تود تغييرها. تمريرها إلى المعلمة --amd
:
npm run build -- --amd= " custom-name "
أو ، لتحديد مجهول ، اترك الاسم فارغًا.
npm run build -- --amd
الاسم الافتراضي لملف jQuery المصمم هو jquery.js
؛ يتم وضعه تحت dist/
DIRECTORY. من الممكن تغيير اسم الملف باستخدام --filename
والدليل باستخدام --dir
. --dir
بالنسبة إلى جذر المشروع.
npm run build -- --slim --filename= " jquery.slim.js " --dir= " /tmp "
هذا من شأنه أن يخلق نسخة ضئيلة من jQuery ووضعها تحت tmp/jquery.slim.js
.
بشكل افتراضي ، تقوم JQuery بإنشاء ملف JavaScript Script. يمكنك أيضًا إنشاء وحدة ecmascript تصدير jQuery
كتصدير افتراضي باستخدام معلمة --esm
:
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
أو ، لإنشاء البناء النحيف كوحدة ESM:
npm run build -- --filename=jquery.slim.module.js --slim --esm
لا يتم اختبار التصميمات المخصصة غير الرسمية بانتظام. استخدمها على مسؤوليتك الخاصة.
تأكد من أن لديك التبعيات اللازمة:
npm install
ابدأ npm start
في بناء تلقائي JQuery أثناء عملك:
npm start
قم بتشغيل اختبارات الوحدة باستخدام خادم محلي يدعم PHP. تأكد من تشغيل الموقع من دليل الجذر ، وليس دليل "الاختبار". لا يلزم وجود قاعدة بيانات. تتوفر الخوادم المحلية التي تم تكوينها مسبقًا لنظام التشغيل Windows و Mac. فيما يلي بعض الخيارات:
نظرًا لأن رمز المصدر يتم معالجته بواسطة نظام التحكم في إصدار GIT ، فمن المفيد معرفة بعض الميزات المستخدمة.
إذا كنت ترغب في تطهير دليل العمل الخاص بك مرة أخرى إلى حالة المنبع ، فيمكن استخدام الأوامر التالية (تذكر أن كل ما عملت عليه بعد ذلك):
git reset --hard upstream/main
git clean -fdx
بالنسبة لفروع الميزة/الموضوع ، يجب عليك دائمًا استخدام العلم --rebase
git pull
، أو إذا كنت تتعامل عادةً مع العديد من فروع "لتكون في طلب سحب GitHub" ، قم بتشغيل ما يلي لأتمتة هذا:
git config branch.autosetuprebase local
(انظر man git-config
لمزيد من المعلومات)
إذا كنت تحصل على تعارضات دمج عند الاندماج ، بدلاً من تحرير الملفات المتضاربة يدويًا ، يمكنك استخدام ميزة git mergetool
. على الرغم من أن الأداة الافتراضية xxdiff
تبدو فظيعة/قديمة ، إلا أنها مفيدة إلى حد ما.
فيما يلي بعض الأوامر التي يمكن استخدامها هناك:
Ctrl + Alt + M
- Automerge قدر الإمكانb
- القفز إلى الصراع القادم لدمجs
- تغيير ترتيب الخطوط المتضاربةu
- التراجع عن دمجleft mouse button
- حدد كتلة لتكون الفائزmiddle mouse button
- حدد خطًا ليكون الفائزCtrl + S
- حفظCtrl + Q
- Quit 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 عندما يحدث رد الاتصال في الاختبار من خلال تضمين برنامج "/test/data/frametest.js" و startIframeTest( [ additional args ] )
عند الاقتضاء. غالبًا ما يكون هذا بعد استعداد المستند أو window.onload
.
يتلقى testCallback
كائن Qunit assert
الذي تم إنشاؤه بواسطة testIframe
لهذا الاختبار ، يليه jQuery
العالمي ، window
، document
من iframe. إذا قام رمز iframe بتمرير أي وسيطات إلى startIframeTest
، فإنها تتبع وسيطة document
.
إذا كان لديك أي أسئلة ، فلا تتردد في طرحها في منتدى JQuery Core أو في #Jquery على Libera.