เมื่อเร็ว ๆ นี้ภาพยนตร์เรื่องนี้จะต้องได้รับการออกแบบมาเพื่อให้ฟังก์ชั่นช่องทำเครื่องหมายที่เลือกทั้งหมด
โอ้นี่ไม่ใช่เรื่องง่ายมากเหรอ? ช่องทำเครื่องหมายทั่วไปหนึ่งช่อง n หลายช่องตรวจสอบย่อย เมื่อเลือกช่องทำเครื่องหมายทั่วไปแล้วกล่องตรวจสอบย่อยทั้งหมดจะถูกเลือก เมื่อไม่ได้เลือกช่องทำเครื่องหมายทั่วไปแล้วช่องตรวจสอบย่อยจะไม่ถูกเลือก
หลังจากได้รับคำขอเล็ก ๆ นี้ฉันก็มีความสุขอย่างลับๆ ฟังก์ชั่นง่าย ๆ โอเคมันจะทำในสองนาที ~~~
เวลาผ่านไปทีละนาทีและม้าบนทุ่งหญ้าที่วิ่งเข้ามาในหัวใจของฉันค่อยๆเพิ่มขึ้นตลอดเวลาเป็นสิบล้านคน ~~~
เกิดอะไรขึ้นกับสิ่งนี้?
การแจ้งเตือน ($ ("#checkbox_all"). attr ("ตรวจสอบ"));
ไม่ได้กำหนดไว้เสมอ?
นานี่? - -
ทำไมสิ่งนี้ถึงเกิดขึ้น? - คุณโง่ในเบราว์เซอร์หรือไม่? จากนั้นเปลี่ยนเบราว์เซอร์อย่างเด็ดขาดเพื่อทดสอบจาก Chrome เป็น IE จาก IE เป็น Firefox นี่คือผลลัพธ์ -_- ||
เป็นไปได้ไหมที่ jQuery ได้ทำการปรับปรุง? - - -
หลังจากตรวจสอบด้วยกล้องโทรทรรศน์ฮับเบิลและกล้องจุลทรรศน์อิเล็กตรอนเลเซอร์ HD ในที่สุดเราก็พบเบาะแส - - -
ปรากฎว่าสิ่งนี้ได้รับการแก้ไขใน jQuery เวอร์ชัน 1.6:
[แอตทริบิวต์ที่ตรวจสอบได้รับการเริ่มต้นเมื่อหน้าเริ่มต้นและจะไม่เปลี่ยนแปลงเมื่อมีการเปลี่ยนแปลงสถานะ
กล่าวคือหากเลือกช่องทำเครื่องหมายหลังจากโหลดหน้าเว็บแล้วช่องที่ส่งคืนจะถูกตรวจสอบเสมอ (ฉันไม่ได้เลือกตั้งแต่ต้น)
หากไม่ได้รับการคัดเลือกในตอนแรกผู้ที่ส่งคืนจะไม่ได้กำหนดไว้เสมอ! -
เนื่องจาก jQuery ได้ทำการเปลี่ยนแปลงสิ่งนี้จึงต้องมีทางออกที่ดีกว่าที่สอดคล้องกัน:
.prop () เป็นอาวุธในการแก้ปัญหานี้!
การใช้งานเฉพาะมีดังนี้:
การแจ้งเตือน ($ ("#checkbox_all"). prop ("ตรวจสอบ"));
มันจะกลายเป็นจริงหรือเท็จในเวลานี้ ~~
ดังนั้นรหัสของสตรีมนี้จึงเปลี่ยนเป็นสิ่งต่อไปนี้:
#check_all เป็นช่องทำเครื่องหมายทั้งหมดที่เลือกทั้งหมดและ #check_children เป็นช่องทำเครื่องหมายเด็ก
การคัดลอกรหัสมีดังนี้:
$ ("#check_all") เปลี่ยน (ฟังก์ชั่น () {
$ ('. check_children'). prop ("ตรวจสอบ", สิ่งนี้ตรวจสอบ);
-
หรือ:
การคัดลอกรหัสมีดังนี้:
$ ("#check_all") เปลี่ยน (ฟังก์ชั่น () {
var is_checked = $ (นี่) .prop ("ตรวจสอบ");
$ ('. check_children'). prop ("ตรวจสอบ", is_checked);
-
อย่างไรก็ตามฉันยังคงชอบใช้วิธีแรกมาก ยิ่งโค้ดน้อยกว่า ~~ เขียนน้อยลงทำมากขึ้น!
สะดวกมากในการแก้ปัญหาการเลือกทั้งหมด ~~~