في الآونة الأخيرة ، يجب تصميم هذا الفيلم لتوفير وظيفة مربع الاختيار التي يتم تحديدها جميعًا.
أوه ، أليس هذا شيء بسيط للغاية؟ مربع اختيار عام واحد ، ن مربعات فرعية متعددة. بمجرد تحديد مربع الاختيار العام ، يتم تحديد جميع صناديق الفحص الفرعي. بمجرد عدم تحديد مربع الاختيار العام ، لا يتم تحديد صناديق الفحص الفرعي.
بعد الحصول على هذا الطلب الصغير ، كنت سعيدًا سراً. يا لها من وظيفة بسيطة ، حسناً ، سيتم ذلك في دقيقتين ~~~
مر الوقت بالدقيقة في الدقيقة ، وزادت الخيول على البراري المتسارع في قلبي تدريجياً من كل وقت إلى عشرات الملايين ~~~
ما الذي يحدث مع هذا؟
ALERT ($ ("#checkbox_all"). attr ("checked")) ؛
دائما غير محددة؟
ناني؟ ؟ ؟
لماذا هذا يحدث؟ ؟ هل أنت غبي في المتصفح؟ ثم تغيير المتصفحات بشكل حاسم للاختبار ، من Chrome إلى IE ، من IE إلى Firefox. هذه هي النتيجة -_- ||
هل يمكن أن يكون jQuery قد أجرت تحسينات؟ ؟ ؟ ؟
بعد التحقق من Telescope Hubble ومجهر إلكترون Laser HD ، وجدنا أخيرًا الفكرة. . . .
اتضح أنه تم تعديل هذا في الإصدار 1.6 jQuery:
[تم تهيئة السمة التي تم فحصها عند تهيئة الصفحة ولن تتغير مع تغيير الحالة.
وهذا يعني ، إذا تم تحديد مربع الاختيار بعد تحميل الصفحة ، فسيتم دائمًا فحصها المُعود (لم أحددها من البداية)
إذا لم يتم تحديده في البداية ، فسيتم دائمًا تحديد الشخص الذي تم إرجاعه! 】
نظرًا لأن JQuery قام بتغييرات على هذا ، يجب أن يكون هناك حل أفضل مقابل:
.prop () هو السلاح لحل هذه المشكلة!
الاستخدام المحدد هو كما يلي:
ALERT ($ ("#checkbox_all"). prop ("checked")) ؛
سيصبح حقيقيًا أو خطأ في هذا الوقت ~~
لذلك ، تم تغيير رمز هذا الدفق إلى ما يلي:
#CHECK_ALL هو إجمالي مربع الاختيار المحدد ، و #check_children هو مربع الاختيار الطفل
نسخة الكود كما يلي:
$ ("#check_all"). Change (function () {
$ ('. check_children'). prop ("checked" ، this.cked) ؛
}) ؛
أو:
نسخة الكود كما يلي:
$ ("#check_all"). Change (function () {
var is_checked = $ (this) .prop ("checked") ؛
$ ('. check_children'). prop ("checked" ، is_checked) ؛
}) ؛
ومع ذلك ، ما زلت أحب استخدام الطريقة الأولى كثيرًا. كود أقل ، كلما كان ذلك أفضل ~~ اكتب أقل ، بذل المزيد من الجهد!
من المريح للغاية حل مشكلة اختيار كل شيء ~~~