jQuery 1.3

29 يناير 2009

فرق سرعة كبير بينها وبين 1.2.6، ويمكنك ملاحظته في بمجرد أستخدام بعض الأكواد التي تثقل المتصفح وستلاحظ سرعتها بأستخدامك 1.3

هناك حدثين رائعين جدد تم أضافتهم وهما live و die

live
عادتاً تقوم بوضع أكوادك حدث ready للـ document وبالتالي يتم تنفيز الأكواد للكائنات المتوادة بصفحتك الأن، وبالتالي إذا قمت بتكوين كائن جديد بالصفحة فهو لا يأخذ أي صفة من التي اعطتها له في السطر السابق، لأن لسطر السابق تم تنفيزه وبعدها تكون هذا العنصر، ولكن مع live فيمكنك أن عطي حدث لكل عنصر يتكون حتى بعد طلب اعطاء هذ الحدث.

يعني أيه !!
يعني أنت عادتاً بتكتب كودك هنا

1
2
3
$(document).ready(function($) {
	// هنا الكود
})

وبالتالي أنت بتقولو لما تنتهي من تحميل عرض كل عناصر الصفحة أبدأ بتنفيز الكود هذا، فإذا كان هناك كود يقوم بتوليد عناصر جديدة بالصفحة مثل هذا

1
2
3
4
5
6
7
$(document).ready(function($) {
	$('label:last input').keypress(function(){
		if ($('label:last input').val().length > 0){// لو أخر عنصر في هذه الحقول متوب فيه
			$('label:last input').after('<label><input name="data[]" type="text" /></label>'); // يقوم بتكوين حقل جديد فاضي بعدهم
		}
	})
})

وهو لو في مجموعة حقول وتريد إذا قام الزائر بالكتابة بهم ووصل لأخرهم وكتب به أن يقوم المتصفح بتكوين حقل جديد ليكتب به وكذلك كلما قام بملئ أخر حقل فيقوم بتكوين حقل جديد

المشكلة الان أن الحقل الجديد لن يأخذ الصفات المسجلة لغيره بأنه عند الكتابة به يقوم بمراجعة أخر حقل ولو مش خالي يتم تكوين حقل جديد، لان هذا الكود تم تنفيذه في $(document).ready وهو تكون بعدها !!، وهذا هو الكود الجديد بواسطة live

1
2
3
4
5
6
7
$(document).ready(function($) {
	$('label:last input').live('keypress', function(){
		if ($('label:last input').val().length > 0){// لو أخر عنصر في هذه الحقول متوب فيه
			$('label:last input').after('<label><input name="data[]" type="text" /></label>'); // يقوم بتكوين حقل جديد فاضي بعدهم
		}
	})
})

وهذه خاصية رائعة، كذلك هناك die وهي تقوم بالغاء حدث من كائن "removes a bound live event"

راجع live وأيضاً die

1 Comment
12 يونيو 2009 @ 6:14 م

شرح حلو شكراً

رد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


*