นอกเหนือจากเครื่องมือ "ดิบ" ที่จัดทำโดยMutationObserver
APIแล้วยังมีไลบรารี "ความสะดวก" ที่มีอยู่เพื่อทำงานกับการกลายพันธุ์ของ DOM
พิจารณา: MutationObserver แสดงถึงการเปลี่ยนแปลง DOM แต่ละครั้งในแง่ของ subtrees ดังนั้นหากคุณกำลังเช่นการรอคอยสำหรับองค์ประกอบบางอย่างที่จะใส่มันอาจจะเป็นในส่วนลึกของเด็ก mutations.mutation[i].addedNodes[j]
ๆ
ปัญหาอีกประการหนึ่งคือเมื่อรหัสของคุณเองในการตอบสนองต่อการกลายพันธุ์เปลี่ยน DOM - คุณมักจะต้องการที่จะกรองออก
ห้องสมุดความสะดวกสบายที่ดีที่แก้ไขปัญหาดังกล่าวคือmutation-summary
(ข้อจำกัดความรับผิดชอบ: ฉันไม่ใช่ผู้แต่ง แต่เป็นผู้ใช้ที่พึงพอใจ) ซึ่งช่วยให้คุณสามารถระบุข้อความค้นหาที่คุณสนใจและได้รับสิ่งนั้น
ตัวอย่างการใช้งานขั้นพื้นฐานจากเอกสาร:
var observer = new MutationSummary({
callback: updateWidgets,
queries: [{
element: '[data-widget]'
}]
});
function updateWidgets(summaries) {
var widgetSummary = summaries[0];
widgetSummary.added.forEach(buildNewWidget);
widgetSummary.removed.forEach(cleanupExistingWidget);
}
([{}])
เข้าสู่คอนโซลซึ่งแสดงให้เห็นถึงความคาดหวังMutationRecord
เมื่อฉันคลิกที่มัน โปรดตรวจสอบอีกครั้งเนื่องจากอาจเป็นความล้มเหลวทางเทคนิคชั่วคราวใน JSFiddle ฉันยังไม่ได้ทดสอบใน IE เนื่องจากฉันยังไม่มี IE 10 ซึ่งปัจจุบันเป็นรุ่นเดียวที่รองรับเหตุการณ์การกลายพันธุ์