jQuery 1.3
فرق سرعة كبير بينها وبين 1.2.6، ويمكنك ملاحظته في بمجرد أستخدام بعض الأكواد التي تثقل المتصفح وستلاحظ سرعتها بأستخدامك 1.3
هناك حدثين رائعين جدد تم أضافتهم وهما live و die
live
عادتاً تقوم بوضع أكوادك حدث ready للـ document وبالتالي يتم تنفيز الأكواد للكائنات المتوادة بصفحتك الأن، وبالتالي إذا قمت بتكوين كائن جديد بالصفحة فهو لا يأخذ أي صفة من التي اعطتها له في السطر السابق، لأن لسطر السابق تم تنفيزه وبعدها تكون هذا العنصر، ولكن مع live فيمكنك أن عطي حدث لكل عنصر يتكون حتى بعد طلب اعطاء هذ الحدث.
يعني أيه !!
يعني أنت عادتاً بتكتب كودك هنا
$(document).ready(function ($) {
// هنا الكود
});
وبالتالي أنت بتقولو لما تنتهي من تحميل عرض كل عناصر الصفحة أبدأ بتنفيز الكود هذا، فإذا كان هناك كود يقوم بتوليد عناصر جديدة بالصفحة مثل هذا
$(document).ready(function ($) {
$("label:last input").keypress(function () {
// لو أخر عنصر في هذه الحقول مكتوب فيه
if ($("label:last input").val().length > 0) {
// يقوم بتكوين حقل جديد فاضي بعدهم
$("label:last input").after("<input />");
}
});
});
وهو لو في مجموعة حقول وتريد إذا قام الزائر بالكتابة بهم ووصل لأخرهم وكتب به أن يقوم المتصفح بتكوين حقل جديد ليكتب به وكذلك كلما قام بملئ أخر حقل فيقوم بتكوين حقل جديد
المشكلة الان أن الحقل الجديد لن يأخذ الصفات المسجلة لغيره بأنه عند الكتابة به يقوم بمراجعة أخر حقل ولو مش خالي يتم تكوين حقل جديد، لان هذا الكود تم تنفيذه في $(document).ready وهو تكون بعدها !!، وهذا هو الكود الجديد بواسطة live
$(document).ready(function ($) {
$("label:last input").live("keypress", function () {
// لو أخر عنصر في هذه الحقول متوب فيه
if ($("label:last input").val().length > 0) {
// يقوم بتكوين حقل جديد فاضي بعدهم
$("label:last input").after("<input />");
}
});
});
وهذه خاصية رائعة، كذلك هناك die وهي تقوم بالغاء حدث من كائن "removes a bound live event"