نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

الصنف Method في روبي

يتم إنشاء كائنات الصنف Method بواسطة التابع Object.method، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن UnboundMethod) ثم ربطها بآخر. class Thing def square(n) n*n end end thing = Thing.new meth = thing.method(:square) meth.call(9) #=> 81 [ 1, 2, 3 ...

تبديل التابع إلى كائن التابع (Replace Method with Method Object)

المشكلة وجود تابعٍ طويلٍ بالكثير من المتغيِّرات المحليّة (local variables) المتداخلة والتي تحول دون تطبيق تقنية الحل باستخراج التابع (extract method). الحل نقل التابع إلى صنفٍ (class) مستقلٍ بحيث تصبح متغيِّراته المحليّة حقولًا (fields) لهذا الصنف، وتقسيم التابع بعد ذلك إلى عدّة توابع أصغر في الصنف ذاته. مثال قبل إعادة التصميم نلاحظ وجود العديد من المتغيِّرات المحليّة في التابع price()‎ بالإضافة إلى عملياتٍ أخرى قد تكون طويلةً ومعقَّدة: في لغة Java: class Order { //... public double price() ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

نقل التابع (Move Method)

المشكلة استخدام التابع (method) في صنفٍ (class) ما أكثر من استخدامه في صنفه الأساسيّ. الحل إنشاء تابعٍ جديدٍ في الصنف الأكثر استخدامًا لذلك التابع ونقل شيفرته إلى التابع الجديد، ثم تحويل الشيفرة في التابع الأصليّ إلى مرجعيّةٍ للتابع الجديد في الصنف الآخر أو حذفه كليَّا. مثال قبل إعادة التصميم يستخدِم الصنفُ Class2 التابعَ aMethod()‎ أكثر مما يستخدمه صنفه الأساسيّ Class1: يستخدِم الصنفُ Class2 التابعَ aMethod()‎ أكثر مما يستخدمه صنفه الأساسيّ Class1. بعد إعادة التصميم نُقِل التابع aMethod()‎ إلى الصنف ذي ...

إخفاء التابع (Hide Method)

المشكلة لا يُستخدم التابع من قِبل الأصناف الأخرى أو يستخدم فقط داخل التسلسل الهرمي للصنف الخاص به. الحل جعل التابع خاصًا أو محميًا. مثال قبل إعادة التصميم لا يستخدم التابع ()aMethod من قبل أصناف أخرى غير الصنف Employee المعرف فيه: لا يُستخدم التابع من قِبل الأصناف الأخرى أو يستخدم فقط داخل التسلسل الهرمي للصنف الخاص به. بعد إعادة التصميم جعل التابع ()aMethod خاصًّا ومحميًّا بإخفائه عن الأصناف الأخرى: جعل التابع خاصًا أو محميًا. لم إعادة التصميم؟ في كثير من الأحيان، ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

استخراج التوابع (Extract Methods)

المشكلة وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل نقل الشيفرة إلى تابعٍ (method) أو دالةٍ (function) جديدة والاستعاضة عن الجزء (بمكانه السابق) باستدعاءٍ لهذا التابع الجديد. مثال قبل إعادة التصميم نلاحظ وجود جزء من الشيفرة لطباعة بعض البيانات (التفاصيل)، والتي يمكن عزلها بتابعٍ جديد، الشيفرة قبل إعادة التصميم بالشكل: في لغة Java: void printOwing() { printBanner(); // طباعة التفاصيل System.out.println("name: " + name); System.out.println("amount: " + getOutstanding()); } في لغة #C: void PrintOwing() { PrintBanner(); ...

دمج التوابع (Inline Methods)

المشكلة أن يكون محتوى التابع (method body) بسيطًا وواضحًا أكثر من التابع بحدِّ ذاته، ويمكن عندئذٍ الاستغناء عنه. الحل نقل الشيفرة الموجودة في التابع (محتوى التابع) إلى مواقع استدعائه، وحذف التابع برمته إذ لا داعي له. مثال قبل إعادة التصميم نلاحظ أن محتوى التابع moreThanFiveLateDeliveries()‎ واضحٌ وبسيطٌ لدرجةٍ تجعل الاستغناء عنه ممكنًا: في لغة Java: class PizzaDelivery { //... int getRating() { return moreThanFiveLateDeliveries() ? 2 : 1; } boolean moreThanFiveLateDeliveries() { ...

التوابع الطويلة (Long Methods)

توصيف المشكلة تنتُج هذه المشكلة عن احتواء شيفرة التابع على الكثير من الأسطر؛ فهو أمرٌ يدعو للتساؤل حقًا إن كان التابع بأكثر من 10 أسطر! لِمَ؟ أسبابها إنَّ ما يحدث دائمًا أنْ يُضاف للتابع لا أن يُحذَف منه! وذلك لسهولة كتابة الإضافات للشيفرة مقارنةً مع قراءتها، ولن تظهر هذه المشكلة واضحةً إلا بعد تفاقمها ووصولها لحدِ لا يُحتمَل، وكذلك يجد المبرمج أنَّ كتابة تابعٍ جديدٍ أكثرُ مشقّةً من الإضافة لتابعٍ موجودٍ مسبقًا، إذ يفكر: "هما سطران وحسب، ولا داعي لتخصيص ...

الدالة jQuery()‎‎ في jQuery

تعيد هذه الدالة مجموعةً من العناصر المطابقة التي إمَّا وُجدَت في شجرة DOM بناءً على الوسائط المُمرَّرة، أو أنشئت بتمرير سلسلة نصية تحتوي على محتوى HTML. ‎jQuery( selector [, context ] )‎ القيم المعادة تعيد كائنًا من النوع jQuery. الوصف تقبل هذه الدالة سلسلة نصية تحتوي على محدِّد CSS يُستعمَل لمطابقة مجموعة من العناصر. ‎jQuery( selector [, context ] )‎ أُضيفت مع الإصدار: 1.0. selector سلسلة نصية تحتوي على تعبير محدِّد. context عنصر DOM، أو كائن Document، أو كائن jQuery ...

تحويل التوابع إلى معاملات (Parameterize Method)

المشكلة تؤدي توابع متعددة أعمالًا مماثلة تختلف فقط من حيث قيمها الداخلية أو أرقامها أو عملياتها. الحل تجميع هذه التوابع باستخدام معامل يُمرر القيمة الخاصة الضرورية. مثال قبل إعادة التصميم يؤدي التابعان ()fivePercentRaise و ()tenPercentRaise الغرض ذاته باختلاف النسبة المئوية المراد زيادتها للموظف Employee: يؤدي التابعان أعمالًا مماثلة تختلف فقط من حيث قيمها الداخلية أو أرقامها أو عملياتها. بعد إعادة التصميم تجميع التابعان السابقان في تابع واحد يدعى ()raise مع تمرير النسبة المئوية المتغيرة إليه: يجمع التابعين باستخدام معامل يُمرر ...

المعامل ===‎ الخاص بالصنف Method في روبي

يستدعي المعامل === كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call. هذا يَسمح لكائنٍ من النوع proc أن يكون هدفًا للكتلة when في التعليمة case. البنية العامة proc === obj→ result_of_proc‎ القيمة المعادة تعاد نتيجة الوسيط proc. انظر أيضا التابع ==: يتحقق من تساوي كائنين من النوع Method. مصادر قسم التابع ===‎ في الصنف Method‎ في توثيق روبي الرسمي.

إعادة تسمية التوابع (Rename Method)

المشكلة لا يعبِّر اسم التابع عن ما يقوم به. الحل إعادة تسمية التابع. مثال قبل إعادة التصميم لا يفسر اسم التابع ()getsnm في الصنف Customer ما يقوم به. لا يفسر اسم التابع ما يقوم به. بعد إعادة التصميم إعادة تسمية التابع ()getsnm إلى ()getSecondName الذي يصف ما يقوم به. يفسر اسم التابع ما يقوم به. لم إعادة التصميم؟ ربما كانت تسمية تابعٍ ما سيئة من البداية - على سبيل المثال، أنشأ شخصٌ ما التابع في عجلة ولم يهتم كفاية بتسميته ...

المعامل ‎[]‎‎ الخاص بالصنف Method في روبي

يستدعي معامل الفهرسة [] الكتلة البرمجية للتابع، ويضبط قيم معاملات الكتلة عند القيم المعطاة ضمنه باستخدام صياغة مشابهة لاستدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أنَّ ‎prc.()‎ يستدعي prc.call()‎ مع تمرير الوسائط المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ‎->()‎‎‎، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc، سيتم تجاهل المعاملات الإضافية بصمت، ...

المعامل ==‎ الخاص بالصنف Method في روبي

يتحقق المعامل == من تساوي كائنين من النوع Method. يكون كائنان من النوع Method متساويين إن كانا مرتبطين بنفس الكائن، وكانا لهما نفس التعريف، وكان لهما نفس الصنف أو الوحدة (module) المالكة. البنية العامة meth == other_meth → true or false‎ القيمة المعادة تُعاد القيمة true إن كان الكائنان متساويين، وإلا فستُعاد القيمة false. انظر أيضا التابع ===: يستدعي كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call. مصادر قسم ...

طريقة الاستعمال وتشغيل الأمثلة في Node.js

البنية العامة node [options] [V8 options] [script.js | -e "script" | - ] [arguments] راجع رجاءً توثيق خيارات سطر الأوامر للمزيد من المعلومات عن الخيارات والطرائق التي يمكن استعمالها لتشغيل السكربتات وتنفيذها مع Node.js. تشغيل الأمثلة سنشرح مثالًا عن إنشاء خادم ويب باستعمال Node.js يُظهِر العبارة 'مرحبًا بالعالم!' في المتصفح. تبدأ الأوامر المستعملة في هذا المثال بالمحرف $ أو < وذلك لمحاكاة كيفيَّة ظهورها في طرفيَّة المستخدم، لذا لا تضف هذين المحرفين إلى الأوامر عند نسخها واستعمالها. توجد الكثير من الدروس ...

التعامل مع Ajax في jQuery

تحوي مكتبة jQuery على مجموعة كاملة من الأدوات المخصصة للتعامل مع Ajax. التوابع والدوال الموجودة في هذا القسم تسمح لك مثلًا بتحميل بيانات من الخادم دون تحديث المتصفح صفحة الويب. ‎.ajaxComplete()‎ يُسجِّل هذا التّابع مُعالِج الأحداث (Event handler) لاستدعائه عند اكتمال طلبات Ajax. ‎.ajaxError()‎ يُسجِّل هذا التّابع مُعالِج الأحداث (Event handler) لاستدعائه عند اكتمال تنفيذ طلب Ajax مع حدوث خطأ. ‎.ajaxSend()‎ يُرفِق هذا التّابع دالة لتنفيذها قبل إرسال طلب Ajax. ‎.ajaxStart()‎ يُسجِّل هذا التّابع مُعالِج الأحداث (Event handler) لاستدعائه عند ...

التابع ‎‎.blur()‎‎‎ في jQuery

‎.blur( handler )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التابع ‎.blur()‎ في ربط مُعالِج أحداث (event handler) إلى حدث الضّبابيّة ‎(blur)‎ في JavaScript، أو إطلاق هذا الحدث على عنصر ما. ‎.blur( handler )‎ أضيفت في الإصدار: 1.0. handler دالة على الشكل ‎Function( Event eventObject )‎، وتُمثِّل الدالة التي ستُنفَّذ في كل مرة يُطلَق فيها الحدث. ‎.blur( [eventData ], handler )‎ أضيفت في الإصدار: 1.4.3. eventData أي شيء (وهو نوع افتراضي مُستخدَم في jQuery للإشارة إلى إمكانيّة استخدام أي نوع)، ويُمثِّل ...

أساس jQuery

تشكل التوابع والدوال الموجودة في هذا القسم أساس مكتبة jQuery. ‎.length تعيد هذه الخاصِّيَّة عدد العناصر الموجودة في كائن jQuery. ‎.jquery يُسند إلى هذه الخاصِّية سلسلة نصية تحتوي على رقم إصدار jQuery. ‎jQuery()‎ تعيد هذه الدالة مجموعةً من العناصر المطابقة التي إمَّا وُجدَت في شجرة DOM بناءً على الوسائط المُمرَّرة، أو أنشئت بتمرير سلسلة نصية تحتوي على محتوى HTML. ‎jQuery.contains()‎ يتحقَّق هذا التابع إن كان عنصر DOM معيَّن هو عنصر سليل (ancestor) من عنصر DOM آخر. ‎jQuery.cssHooks()‎ يتعلَّق هذا التابع ...

التابع ‎.children()‎‎ في jQuery

‎.children( [selector ] )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التّابع ‎.children()‎ للحصول على العناصر الأبناء لكل عنصر من مجموعة العناصر المُطابِقة، ويُمكِن ترشيحه بشكل اختياري عن طريق مُحدِّد. ‎.children( [selector ] )‎ أضيفت في الإصدار: 1.0. selector مُحدِّد، ويُمثِّل سلسلة نصيّة تحتوي على تعبير المُحدِّد المطلوب مُطابقة العناصر معه. يسمح لنا التّابع ‎.children()‎، من خلال إعطاء كائن jQuery يُمثِّل مجموعة عناصر DOM، أن نبحث خلال العناصر الأبناء لها في شجرة DOM وأن نبني كائن jQuery جديد من العناصر المُطابِقة. ...

التأثيرات والحركات في jQuery

توفر مكتبة jQuery عدة تقنيات من أجل إضافة حركات إلى صفحة الويب. المحركات المشمولة هي الحركات البسيطة (simple animations) والحركات القياسية (standard animations) المستخدمة بكثرة بالإضافة إلى توفير إمكانية لإنشاء وإضافة حركات مخصصة. ‎.animate()‎ يُنفِّذ هذا التّابع تحريكًا (animation) لخاصيّة أو لمجموعة من خاصيّات CSS. ‎.clearQueue()‎ يُزيل هذا التّابع كافّة العناصر التي لم تُشغَّل حتى الآن من الطابور. ‎.delay()‎ يضبط هذا التابع مؤقِّت لتأجيل تنفيذ العناصر التالية في طابور (queue) الانتظار. ‎.fadeIn()‎ يعرض هذا التابع العناصر المطابقة عن طريق تحويلها ...

التابع ‎‎.prependTo()‎‎ في jQuery

‎.prependTo( target )‎ القيم المعادة يعيد كائنًا من النوع jQuery. الوصف يُستخدَم هذا التابع في إدخال كل عنصر من مجموعة العناصر المُطابِقة إلى بداية العنصر الهدف. ‎.prependTo( target )‎ أضيف مع الإصدار 1.0. target مُحدِّد (Selector) أو سلسلة نصيّة من الكائن htmlString أو عنصر أو مصفوفة أو كائن jQuery، وتُمثِّل مجموعة العناصر المُطابِقة التي ستُدخَل إلى بداية العنصر أو العناصر المُحدَّدة عن طريق هذا المُعامِل. ينجز التابعان ‎.prepend()‎ و ‎.prependTo()‎ نفس المهمة ويكمن الفرق الأساسي بينهما في الصياغة، أي في ...

تعديل العناصر في jQuery

جميع التوابع في هذا القسم تعدل وتتلاعب بشجرة DOM عبر تعديل عنصر (أو مجموعة من العناصر) بأكمله وبذاته مثل الإضافة، أو النسخ، أو الحذف، أو الإزالة ...إلخ. (إن كنت تبحث عن توابع تعدل خاصية عنصر، فانتقل إلى قسم «تعديل الخاصيات»). ‎.after()‎ يُدخِل هذا التّابع المحتوى المُحدَّد عن طريق المُعامِل بعد كل عنصر من مجموعة العناصر المُطابقة. ‎.append()‎ يُدخِل هذا التّابع المحتوى المُحدَّد عن طريق المُعامِل إلى آخر كل عنصر من مجموعة العناصر المُطابِقة. ‎.appendTo()‎ يُدخِل هذا التّابع كل عنصر من ...

التابع ‎‎.appendTo()‎‎‎ في jQuery

‎.appendTo( target )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التّابع ‎.appendTo()‎ في إدخال كل عنصر من مجموعة العناصر المُطابِقة إلى نهاية العنصر الهدف. ‎.appendTo( target )‎ أضيفت في الإصدار: 1.0. target مُحدِّد (Selector) أو سلسلة نصيّة من الكائن htmlString أو عنصر أو مصفوفة أو كائن jQuery، وتُمثِّل مجموعة العناصر المُطابِقة التي ستُدخَل إلى نهاية العنصر أو العناصر المُحدَّدة عن طريق هذا المُعامِل. ينجز التّابعان ‎.append()‎ و ‎.appendTo()‎ نفس المهمة ويكمن الفرق الأساسي بينهما في الصّياغة، أي في مكان تحديد المحتوى ...

الخاصية ‎event.stopImmediatePropagation()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

event.stopImmediatePropagation()‎ القيمة المعادة تُعيد هذه الخاصية القيمة undefined. الوصف تمنع هذه الخاصية تنفيذ بقية معالجات الأحداث ومنع الحدث من الانتقال عبر شجرة DOM إلى العناصر الأب (event bubbling). event.stopImmediatePropagation()‎ أُضيف مع الإصدار: 1.3. لا تقبل هذه الخاصية أي وسائط. بالإضافة إلى منع تنفيذ أي معالجات إضافية على عنصر ما، فإن هذه الخاصية أيضًا تمنع الانتقال عبر شجرة DOM إلى العناصر الأب عن طريق استدعاء event.stopPropagation()‎ ضمنيًا. لمنع الحدث من الانتقال إلى العناصر الأب ببساطة مع السماح الأحداث الأخرى بالتنفيذ على ...

الخاصية ‎event.stopImmediatePropagation()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

event.stopImmediatePropagation()‎ القيمة المعادة تُعيد هذه الخاصية القيمة undefined. الوصف تمنع هذه الخاصية تنفيذ بقية معالجات الأحداث ومنع الحدث من الانتقال عبر شجرة DOM إلى العناصر الأب (event bubbling). event.stopImmediatePropagation()‎ أُضيف مع الإصدار: 1.3. لا تقبل هذه الخاصية أي وسائط. بالإضافة إلى منع تنفيذ أي معالجات إضافية على عنصر ما، فإن هذه الخاصية أيضًا تمنع الانتقال عبر شجرة DOM إلى العناصر الأب عن طريق استدعاء event.stopPropagation()‎ ضمنيًا. لمنع الحدث من الانتقال إلى العناصر الأب ببساطة مع السماح الأحداث الأخرى بالتنفيذ على ...

التابع ‎.append()‎‎‎ في jQuery

‎.append( content [, content ] )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التّابع ‎.append()‎ في إدخال المحتوى المُحدَّد عن طريق المُعامِل إلى آخر كل عنصر من مجموعة العناصر المُطابِقة. ‎.append( content [, content ] )‎ أضيفت في الإصدار: 1.0. content سلسلة نصيّة من الكائن htmlString، أو عنصر، أو نص، أو مصفوفة، أو jQuery، وتُمثِّل سلسلة HTML، أو عنصر DOM، أو عقدة نصيّة (text node)، أو مصفوفة من العناصر والعقد النصيّة، أو كائن jQuery المطلوب إدخالها بعد كل عنصر من مجموعة ...

التابع ‎.ajaxStop()‎‎‎ في jQuery

‎.ajaxStop( handler )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التابع ‎‎.ajaxStop()‎‎ في تسجيل مُعالِج الأحداث (Event handler) لاستدعائه عند اكتمال تنفيذ جميع طلبات Ajax، يُعدُّ هذا التّابع حدثًا من أحداث Ajax. ‎.ajaxStop( handler )‎ أضيفت في الإصدار: 1.0. handler يُمثِّل الدالة المطلوب استدعاؤها. عندما يكتمل تنفيذ طلب Ajax، تتحقّق jQuery ما إذا كانت هناك طلبات Ajax أخرى، وإن لم يكن هناك أي طلب تُطلِق jQuery الحدث ajaxStop، وتُنفَّذ عندها كافّة مُعالجات الأحداث المُسجَّلة مع التّابع ‎.ajaxStop()‎. يُطلَق الحدث ajaxStop أيضًا ...

التابع ‎.focus()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

‎.focus( handler )‎ القيمة المعادة يُعيد كائنًا من النوع jQuery. الوصف ربط دالة معالج أحداث بحدث "focus" من JavaScript، أو إطلاق هذا الحدث على عنصر. ‎.focus( handler )‎ أُضيف مع الإصدار: 1.0. handler دالة على الشكل Function( Event eventObject )‎، تُنفَّذ في كل مرة يُطلَق فيها الحدث. ‎.focus( [eventData ], handler )‎ أُضيف مع الإصدار: 1.4.3. eventData كائن يحتوي على البيانات التي ستُمرر إلى معالج الحدث، ويمكن أن يكون من أي نوع من أنواع JavaScript. handler دالة على الشكل Function( ...

التابع ‎.before()‎‎‎ في jQuery

‎.before( content [, content ] )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التّابع ‎‎.before()‎‎ لإدخال المحتوى المُحدَّد عن طريق المُعامِل قبل كل عنصر من مجموعة العناصر المُطابقة. ‎.before( content [, content ] )‎ أضيفت في الإصدار: 1.0. content سلسلة نصيّة من الكائن htmlString، أو عنصر، أو نص، أو مصفوفة، أو jQuery، وتُمثِّل سلسلة HTML، أو عنصر DOM، أو عقدة نصيّة (text node)، أو مصفوفة من العناصر والعقد النصيّة، أو كائن jQuery المطلوب إدخالها قبل كل عنصر من مجموعة العناصر المُطابقة. ...

التابع ‎.closest()‎‎ في jQuery

‎.closest( selector )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التابع ‎.closest()‎ بالنسبة لكل عنصر في المجموعة للحصول على العنصر الأول الذي يُطابِق المُحدِّد عن طريق اختبار العنصر ذاته والانتقال إلى العناصر الأسلاف له في شجرة DOM. ‎.closest( selector )‎ أضيفت في الإصدار: 1.3. selector مُحدِّد، ويُمثِّل سلسلة نصيّة تحتوي على تعبير المُحدِّد المطلوب مُطابقة العناصر معه. ‎.closest( selector [, context ] )‎ أضيفت في الإصدار: 1.4. selector مُحدِّد، ويُمثِّل سلسلة نصيّة تحتوي على تعبير المُحدِّد المطلوب مُطابقة العناصر معه. context ...

التابع ‎‎.not()‎‎ في jQuery

‎.not( [selector ] )‎ القيم المعادة يعيد كائنًا من النوع jQuery. الوصف يحذف هذا التابع عناصر محدَّدة من مجموعة من العناصر المطابقة. ‎.not( selector )‎ أُضيف مع الإصدار: 1.0. selector سلسلة نصية تحتوي على تعبير محدِّد، أو عنصر DOM، أو مصفوفة من العناصر لمطابقة مجموعة معينة من العناصر. ‎.not( function )‎ أُضيف مع الإصدار: 1.4. function دالة من الشكل Function( Number index, Element element )‎ تعيد قيمة منطقيَّة Boolean، وتُستعمَل للتحقُّق من كلِّ عنصر من عناصر المجموعة. تقبل هذه الدالة ...

ازالة توابع الإعدادات (Remove Setting Method)

المشكلة يكون تعيين قيمة الحقل فقط عند إنشائه، ولا تتغير في أي وقت لاحق. الحل إزالة التوابع التي تضبط قيمة الحقل. مثال قبل إعادة التصميم يضبط التابع ()setImmutableValue قيمةً غير قابلة للتغيير أو التعديل في المستقبل: يغيّر التابع من قيمة الحقل. بعد إعادة التصميم حذف التابع ()setImmutableValue من الصنف Customer: إزالة التابع الذي يضبط قيمة الحقل. لم إعادة التصميم؟ إذا كنت تريد منع أي تغييرات في قيمة الحقل. آلية الحل يجب أن تكون قيمة الحقل قابلة للتغيير فقط في الباني. ...

تبسيط استدعاءات التوابع (Simplifying Method Calls)

تجعل التقنيات التي سيشار إليها في هذا القسم استدعاءات التوابع أبسط وأسهل للفهم والاستيعاب. سيؤدي ذلك بدوره إلى تبسيط الواجهات للتفاعل بين الأصناف. هذه التقنيات هي: إعادة تسمية التوابع (Rename Method) المشكلة: لا يعبِّر اسم التابع عن ما يقوم به. الحل: إعادة تسمية التابع. إضافة المعاملات (Add Parameter) المشكلة: لا يملك التابع بيانات كافية لتنفيذ بعض الإجراءات. الحل: إنشاء معامل جديد لتمرير البيانات الضرورية. حذف المعاملات (Remove Parameter) المشكلة: لا يُستخدم معاملٌ ما في متن التابع. الحل: إزالة المعامل غير ...

تعريف التوابع الدخيلة (Introduce Foreign Methods)

المشكلة الحاجة إلى تابعٍ غير موجودٍ في الصنف المساعد (utility class) ومن غير الممكن إضافته إلى ذلك الصنف. الحل إضافة التابع المطلوب إلى صنف العميل (client class) وتمرير كائنٍ (object) من الصنف المساعد إليه كوسيط (argument). مثال قبل إعادة التصميم يحتوي الصنف Report تابعًا باسم sendReport والذي يستخدم الصنف المساعد Date لإنشاء تاريخ اليوم التالي عبر إضافة القيمة 1 إلى اليوم الحالي، كما يلي: في لغة Java: class Report { //... void sendReport() { Date ...

دفع التابع لأسفل (Push Down Method)

المشكلة هل السلوك المُنفَّذ في الصنف الأب مُستخدمٌ في صنف فرعي واحد فقط (أو أكثر)؟ الحل نقل هذا السلوك إلى الأصناف الفرعية. مثال قبل إعادة التصميم التابع ()getFuel الموجود في الصنف Unit الأب مُستخدم في صنف فرعي واحد فقط الذي هو Tank: التابع الموجود في الصنف الأب مُستخدم في صنف فرعي واحد فقط. بعد إعادة التصميم نقل التابع ()getFuel من الصنف الأب إلى الصنف الفرعي المستخدم فيه: نقل هذا التابع إلى الصنف الفرعي الذي يُستخدم فيه. لم إعادة التصميم؟ في ...

سحب التابع لأعلى (Pull Up Method)

المشكلة تحتوي الأصناف الفرعية على توابع تؤدي نفس العمل. الحل جعل التوابع متطابقة ثم نقلها إلى الصنف الأعلى ذي الصلة. مثال قبل إعادة التصميم يحتوي الصنفان الفرعيان Soldier و Tank على التابع ()getHealth الذي يؤدي نفس العمل: تحتوي الأصناف الفرعية على التابع ()getHealth تؤدي نفس العمل. بعد إعادة التصميم نقل التابع ()getHealth إلى الصنف Unit الأب وإزالته من الأصناف الفرعية: نقل التابع ()getHealth إلى الصنف الأعلى. لم إعادة التصميم؟ تنمو الأصناف الفرعية وتتطور بشكل مستقل عن بعضها البعض، مما يتسبب ...

التابع call‎ الخاص بالصنف Method في روبي

يستدعي call كتلة التابع الذي استٌدعي معه، ويضبط وسائط الكتلة عند القيم المُمرَّرة إليه باستخدام صياغة مشابهة لصياغة استدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أن ‎prc.()‎ يستدعي prc.call()‎ مع تمرير المعاملات المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ‎->()‎‎‎، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc ، سيتم تجاهل المعاملات الإضافية ...

التابع ‎.after()‎‎‎ في jQuery

after( content [, content ] )‎. القيمة المعادة كائن jQuery. الوصف يُستخدَم التّابع ‎.after()‎ لإدخال المحتوى المُحدَّد عن طريق المُعامِل بعد كل عنصر من مجموعة العناصر المُطابقة. ‎.after( content [, content ] )‎ أضيفت في الإصدار: 1.0. content سلسلة نصيّة من الكائن htmlString، أو عنصر، أو نص، أو مصفوفة، أو jQuery، وتُمثِّل سلسلة html، أو عنصر DOM، أو عقدة نصيّة (text node)، أو مصفوفة من العناصر والعقد النصيّة، أو كائن jQuery المطلوب إدخالها بعد كل عنصر من مجموعة العناصر المُطابقة. ...

التابع ‎.unbind()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

‎.unbind( eventType [, handler ] )‎ القيمة المعادة يُعيد كائنًا من النوع jQuery. اٌُهمل مع الإصدار: 3.0. الوصف إزالة معالج أحداث سبق إرفاقه بالعناصر. ‎.unbind( eventType [, handler ] )‎ أُضيف مع الإصدار: 1.0. eventType سلسلة نصية من النوع String تحتوي على واحد أو أكثر من أنواع أحداث DOM، مثل click أو submit أو أسماء أحداث مخصصة. handler الدالة التي سيتوقف تنفيذها وهي على الشكل Function( Event eventObject )‎. ‎.unbind( eventType, false )‎ أُضيف مع الإصدار: 1.4.3. eventType سلسلة نصية ...

التابع ‎‎.clone()‎‎ في jQuery

‎.clone( [withDataAndEvents ] )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التابع ‎.clone()‎ في إنشاء نسخة عميقة (deep copy) من مجموعة العناصر المُطابِقة. ‎.clone( [withDataAndEvents ] )‎ أضيفت في الإصدار: 1.0. withDataAndEvents (القيمة الافتراضة: false) قيمة منطقيّة (Boolean)، وتُشير ما إذا كان يجب نسخ مُعالِجات الأحداث مع العناصر. بدءًا من إصدار jQuery 1.4 أصبحت بيانات العنصر تُنسَخ أيضًا. ‎.clone( [withDataAndEvents ] [, deepWithDataAndEvents ] )‎ أضيفت في الإصدار: 1.5. withDataAndEvents (القيمة الافتراضية: false) قيمة منطقيّة (Boolean)، وتُشير ما إذا كان يجب ...

التابع ‎‎.ajaxComplete()‎‎‎ في jQuery

‎.ajaxComplete( handler )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التّابع ‎.ajaxComplete()‎ لتسجيل مُعالِج الأحداث (Event handler) لاستدعائه عند اكتمال طلبات Ajax. يُعدُّ هذا التّابع حدثًا من أحداث Ajax. ‎.ajaxComplete( handler )‎ أضيفت في الإصدار: 1.0. handler دالة على الشكل ‎Function( Event event, jqXHR jqXHR, PlainObject ajaxOptions )‎،وهي الدالة التي ستُستدعى. حالما يكتمل تنفيذ طلب Ajax، تُطلَق jQuery الحدث ajaxComplete، وتُنفَّذ عندها كافّة مُعالجات الأحداث المُسجَّلة مع التّابع‎.ajaxComplete() ‎. لمشاهدة مثال عملي عن هذا التّابع نُجهِّز طلب بسيط لتحميل Ajax: <button ...

التابع ‎‎.prepend()‎‎ في jQuery

‎.prepend( content [, content ] )‎ القيم المعادة يعيد كائنًا من النوع jQuery. الوصف يُستخدَم هذا التابع ‎في إدخال لمحتوى المُحدَّد عن طريق المُعامِل إلى بداية كل عنصر من مجموعة العناصر المُطابِقة. ‎.prepend( content [, content ] )‎ أضيف مع الإصدار 1.0. content سلسلة نصيّة من الكائن htmlString، أو عنصر، أو نص، أو مصفوفة، أو كائن jQuery، وتُمثِّل سلسلة HTML، أو عنصر DOM، أو عقدة نصيّة (text node)، أو مصفوفة من العناصر والعقد النصيّة، أو كائن jQuery المطلوب إدخالها في ...

التابع ‎‎.ajaxSuccess()‎‎‎ في jQuery

‎.ajaxSuccess( handler )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التابع ‎.ajaxSuccess()‎ لإرفاق دالة لتنفيذها عند اكتمال تنفيذ طلب Ajax، يُعدُّ هذا التّابع حدثًا من أحداث Ajax. ‎.ajaxSuccess( handler )‎ أضيفت في الإصدار: 1.0. handler دالة على الشكل ‎Function( Event event, jqXHR jqXHR, PlainObject ajaxOptions, PlainObject data )‎، وهي الدالة المطلوب استدعاؤها. عندما يكتمل تنفيذ طلب Ajax، تُطلِق jQuery الحدث ajaxSuccess، وتُنفَّذ عندها كافّة مُعالجات الأحداث المُسجَّلة مع التّابع ‎.ajaxSuccess()‎. لمشاهدة مثال عملي عن هذا التّابع نُجهِّز طلب بسيط لتحميل Ajax: ...

التابع ‎.bind()‎‎ في jQuery

‎.bind( eventType [, eventData ], handler )‎ القيمة المعادة كائن jQuery. أُهمِل هذا التّابع في الإصدار: 3.0. الوصف يُستخدَم التّابع ‎.bind()‎ في إرفاق مُعالِج أحداث (Event handler) لحدثٍ ما للعناصر. ‎.bind( eventType [, eventData ], handler )‎ أضيفت في الإصدار: 1.0. eventType سلسلة نصيّة، وتُمثِّل أنواع حدث DOM مثل click، أو submit، أو أسماء مُخصَّصة للأحداث. eventData أي شيء (وهو نوع افتراضي مُستخدَم في jQuery للإشارة إلى إمكانيّة استخدام أي نوع)، ويُمثِّل كائن يحتوي على البيانات التي ستُمرَّر إلى مُعالِج ...

التابع ‎‎.ready()‎‎ في jQuery

‎.ready( handler )‎ القيم المعادة يعيد كائنًا من النوع jQuery. الوصف ينفِّذ هذا التابع دالةً عندما تكون شجرة DOM جاهزة. ‎.ready( handler )‎ أُضيف مع الإصدار: 1.0. handler الدالة المراد تنفيذها بعد أن تصبح DOM جاهزة. يوفر التابع ‎.ready()‎ طريقة لتشغيل شيفرة JavaScript حالما يصبح بالإمكان تعديل DOM بشكل آمن. يُعدُّ هذا الوقت غالبًا أفضل الأوقات لإنجاز مهامٍ ضرورية قبل أن يشاهد المستخدم الصفحة أو يتفاعل معها مثل إضافة معالجات أحداث أو تهيئة إضافات معيَّنة. عندما تُضاف دوال متعدِّدة عبر ...

التنقل بين العناصر في jQuery

تتيح التوابع في هذا القسم بتحديد عناصر موجودة في موضع محدد والتنقل بينها. ‎.add()‎ إنشاء كائن jQuery جديد من العناصر المضافة إلى مجموعة من العناصر المطابقة. ‎.addBack()‎ يُضيف هذا التّابع مجموعة العناصر الموجودة سابقًا في المَكْدَس (stack) إلى المجموعة الحاليّة، مع إمكانيّة ترشيحها بشكل اختياري عن طريق مُحدِّد (selector). ‎.andSelf()‎ يُضيف هذا التّابع مجموعة العناصر الموجودة سابقًا في المَكدَس (stack) إلى المجموعة الحاليّة. ‎.children()‎ يحصل هذا التّابع على العناصر الأبناء لكل عنصر من مجموعة العناصر المُطابِقة. ‎.closest()‎ يحصل هذا التّابع ...

المحدد ‎‎‎:button‎‎ في jQuery

المحدد ‎‎:button الوصف يُحدِّد عناصر الأزرار <button> والعناصر التي من نوع button. ‎jQuery( ":button" )‎ أضيفت في الإصدار: 1.0. المُحدِّد المُكافِئ لـ ‎$( ":button" )‎ باستخدام CSS هو ‎$( "button, input[type='button']" )‎.  ملاحظات إضافيّة لمّا كان ‎:button عبارة عن امتداد jQuery وليس جزءًا من مواصفات CSS، فلن تستفيد الاستعلامات التي تستخدم ‎:button من زيادة الأداء المُقدَّمة عن طريق التّابع querySelectorAll()‎ الأصلي في DOM، وللحصول على أداء أفضل في المتصفحات الحديثة عند استخدام ‎:button لتحديد العناصر، اختر أولًا العناصر باستخدام مُحدِّد ...

التابع ‎‎.clearQueue()‎‎‎ في jQuery

‎.clearQueue( [queueName ] )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التابع ‎.clearQueue()‎ في إزالة كافّة العناصر التي لم تُشغَّل حتى الآن من الطابور. ‎.clearQueue( [queueName ] )‎ أضيفت في الإصدار: 1.4. queueName سلسلة نصيّة، وتُمثِّل اسم الطابور. القيمة الافتراضيّة هي fx، وهو طابور التأثيرات المعياري. عندما يُستدعى التّابع ‎.clearQueue()‎، فستُزال من الطابور كافّة الدوال الموجودة فيه والتي لم تُنفَّذ بعد. عندما يُستخدَم هذا التّابع دون وسيط، فسيُزيل ‎.clearQueue()‎ الدوال المتبقيّة من fx وهو طابور التأثيرات المعياري. يُشابِه هذا التّابع بهذه ...

المحدد ‎:animated‎‎ في jQuery

المحدد ‎:animated‎ الوصف يُستخدَم المُحدِّد ‎:animated‎ في تحديد جميع العناصر قيد التحريك حاليًّا في وقت تشغيل المُحدِّد. ‎jQuery( ":animated" )‎ أضيفت في الإصدار: 1.2. ملاحظة: إن استخدمنا نسخة jQuery مُخصَّصة لا تحتوي على وحدة التأثيرات، فسيرمي المُحدِّد ‎:animated‎ خطأً. ملاحظات إضافيّة لمّا كان المُحدِّد ‎:animated‎ عبارة عن امتداد jQuery وليس جزءًا من مواصفات CSS، فلن تستفيد الاستعلامات التي تستخدم هذا المُحدِّد من تحسين الأداء المُقدَّم عن طريق تابع DOM الأصلي ‎querySelectorAll()‎. ولتحقيق أفضل أداء عند استخدام ‎:animated لتحديد العناصر، فحدِّد ...

عرض (50 السابقة | 50 التالية) (20 | 50 | 100 | 250 | 500).