select
ในความคิดของฉันการออกแบบฟังก์ชันการทำงานใน CSS ที่เป็นรูปธรรมนั้นเป็นเหตุผลที่ดีทีเดียวที่จะไม่ใช้มัน
คุณต้องเริ่มต้นองค์ประกอบที่เลือกmaterial_select()
ตามที่ @ littleguy23 กล่าวถึง หากคุณไม่ทำเช่นนั้นช่องเลือกจะไม่ปรากฏขึ้นด้วยซ้ำ! ในแอป jQuery ที่ล้าสมัยฉันสามารถเริ่มต้นได้ในฟังก์ชันพร้อมเอกสาร เดาอะไรไม่ได้ทั้งฉันและคนอื่น ๆ ไม่ได้ใช้ jQuery ในวันนี้และเราไม่ได้เริ่มต้นแอพของเราในตะขอพร้อมเอกสาร
เลือกสร้างแบบไดนามิก จะเกิดอะไรขึ้นถ้าฉันสร้างการเลือกแบบไดนามิกเช่นเกิดขึ้นในเฟรมเวิร์กเช่น Ember ซึ่งสร้างมุมมองได้ทันที ฉันต้องเพิ่มตรรกะในแต่ละมุมมองเพื่อเริ่มต้นกล่องเลือกทุกครั้งที่สร้างมุมมองหรือเขียนมุมมองมิกซ์อินเพื่อจัดการสิ่งนั้นให้ฉัน และที่แย่ไปกว่านั้น: เมื่อมีการสร้างมุมมองและในเงื่อนไข Ember didInsertElement
ถูกเรียกการเชื่อมโยงกับรายการตัวเลือกสำหรับกล่องเลือกอาจยังไม่ได้รับการแก้ไขดังนั้นฉันจึงต้องการตรรกะพิเศษในการสังเกตรายการตัวเลือกเพื่อรอจนกว่าจะถึง เติมข้อมูลก่อนทำการโทรไปยังไฟล์material_select
. หากตัวเลือกมีการเปลี่ยนแปลงอย่างที่อาจทำได้ง่าย ๆmaterial_select
ก็ไม่รู้และไม่อัปเดตเมนูแบบเลื่อนลง ฉันสามารถโทรmaterial_select
อีกครั้งเมื่อตัวเลือกเปลี่ยนไป แต่ดูเหมือนว่าจะไม่ทำอะไรเลย (ถูกเพิกเฉย)
กล่าวอีกนัยหนึ่งก็คือดูเหมือนว่าสมมติฐานการออกแบบที่อยู่เบื้องหลังช่องเลือกของ CSS ที่เป็นรูปธรรมก็คือพวกมันทั้งหมดอยู่ที่การโหลดหน้าเว็บและค่าของมันจะไม่เปลี่ยนแปลง
การนำไปใช้ จากมุมมองด้านสุนทรียศาสตร์ฉันยังไม่ชอบวิธีการที่ CSS ใช้งานแบบเลื่อนลงซึ่งเป็นรูปธรรมซึ่งก็คือการสร้างชุดเงาคู่ขนานขององค์ประกอบที่อื่นใน DOM จริงอยู่ทางเลือกเช่น select2 ทำสิ่งเดียวกันและอาจไม่มีวิธีอื่นในการบรรลุเอฟเฟกต์ภาพบางอย่าง (จริงเหรอ?) สำหรับฉันแล้วเมื่อฉันตรวจสอบองค์ประกอบฉันต้องการเห็นองค์ประกอบไม่ใช่รุ่นเงาที่ใครบางคนสร้างขึ้นอย่างน่าอัศจรรย์
เมื่อ Ember ทำให้มุมมองแย่ลงฉันไม่แน่ใจว่า CSS ที่เป็นรูปธรรมจะทำให้องค์ประกอบเงาที่สร้างขึ้น ที่จริงฉันค่อนข้างแปลกใจถ้าเป็นเช่นนั้น หากทฤษฎีของฉันถูกต้องเนื่องจากมุมมองถูกสร้างขึ้นและถูกทำลายลง DOM ของคุณจะกลายเป็นมลพิษโดยมีเงาแบบเลื่อนลงหลายสิบชุดที่ไม่ได้เชื่อมต่อกับสิ่งใดเลย สิ่งนี้ไม่เพียง แต่ใช้กับ Ember เท่านั้น แต่ยังใช้กับเฟรมเวิร์กฟรอนต์เอนด์ของ OPA ที่ใช้ MVC / เทมเพลตอื่น ๆ
ผูก ฉันยังไม่สามารถหาวิธีรับค่าที่เลือกในกล่องโต้ตอบเพื่อผูกกลับกับสิ่งที่มีประโยชน์ในกรอบงานเช่น Ember ที่เรียกใช้กล่องเลือกผ่าน{{view 'Ember.Select' value=country}}
อินเทอร์เฟซประเภท กล่าวอีกนัยหนึ่งคือเมื่อมีการเลือกบางอย่างcountry
จะไม่มีการอัปเดต นี่คือตัวทำลายข้อตกลง
คลื่น อย่างไรก็ตามปัญหาเดียวกันนี้ใช้กับเอฟเฟกต์ "wave" บนปุ่มต่างๆ คุณต้องเริ่มต้นทุกครั้งที่สร้างปุ่ม โดยส่วนตัวแล้วฉันไม่สนใจเกี่ยวกับเอฟเฟกต์ของคลื่นและไม่เข้าใจว่าเอะอะทั้งหมดนั้นเกี่ยวกับอะไร แต่ถ้าคุณต้องการคลื่นโปรดทราบว่าคุณจะใช้เวลาส่วนหนึ่งของชีวิตที่เหลืออยู่โดยกังวลว่าจะทำอย่างไร เริ่มต้นทุกปุ่มเมื่อสร้างขึ้น
ฉันขอขอบคุณในความพยายามของพวก CSS ที่เป็นรูปธรรมและมีเอฟเฟกต์ภาพที่ดีอยู่ที่นั่น แต่มันใหญ่เกินไปและมี gotcha มากเกินไปเช่นข้างบนที่จะเป็นสิ่งที่ฉันจะใช้ ตอนนี้ฉันกำลังวางแผนที่จะคัดลอก CSS ที่เป็นรูปธรรมออกจากแอปของฉันและกลับไปที่ Bootstrap หรือเลเยอร์ที่อยู่ด้านบนของ Suit CSS เครื่องมือของคุณควรทำให้ชีวิตของคุณง่ายขึ้นไม่ยากขึ้น
<select class="browser-default">