HTMLSlotElement: slotchange ã¤ãã³ã
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2020å¹´1æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
slotchange ã¤ãã³ãã¯ã HTMLSlotElement ã¤ã³ã¹ã¿ã³ã¹(<slot> è¦ç´ ) ã«ããã¦ããã®ã¹ãããã«å«ã¾ãããã¼ãã夿´ãããå ´åã«çºè¡ããã¾ãã
ã¡ã¢:
ã¹ãããã«å
¥ã£ã¦ãããã¼ãã®åãã¼ãã夿´ãããå ´åã slotchange ã¤ãã³ãã¯çºçãã¾ãããå®éã®ãã¼ãèªä½ã夿´ï¼ä¾ãã°ã追å ã¾ãã¯åé¤ï¼ããå ´åã«éãã¾ãã
slotchange ã¤ãã³ããçºè¡ãããã«ã¯ã slot 屿§ãè¨å®ã¾ãã¯åé¤ããªããã°ãªãã¾ããã
ãã®ã¤ãã³ãã¯ãã£ã³ã»ã«ã§ãã¾ããã
æ§æ
ãã®ã¤ãã³ãåã addEventListener() ãªã©ã®ã¡ã½ããã§ä½¿ç¨ããããã¤ãã³ããã³ãã©ã¼ããããã£ã«è¨å®ããããã¦ãã ããã
addEventListener("slotchange", (event) => {});
onslotchange = (event) => {};
ã¤ãã³ãå
ä¸è¬ç㪠Event ã§ãã
ä¾
element.setAttribute("slot", slotName);
// element.assignedSlot = $slot
element.removeAttribute("slot");
// element.assignedSlot = null
次ã®ã¹ããããã¯ã slotchange ã®ä¾ããåãã¾ãã (ã©ã¤ãã§ã確èªã§ãã¾ã)ã
let slots = this.shadowRoot.querySelectorAll("slot");
slots[1].addEventListener("slotchange", (e) => {
let nodes = slots[1].assignedNodes();
console.log(
`Element in Slot "${slots[1].name}" changed to "${nodes[0].outerHTML}".`,
);
});
ããã§ã¯ãã¹ã¦ã® <slot> ã¸ã®åç
§ãåå¾ãããã³ãã¬ã¼ãã® 2 çªç®ã®ã¹ãããã« slotchange ã¤ãã³ããªã¹ãã¼ã追å ãã¾ãããã®ä¾ã§ã¯ã³ã³ãã³ãã夿´ããã¦ããã¹ãããã§ãã
ã¹ãããã«æ¿å ¥ãããè¦ç´ ã夿´ããããã³ã«ãã©ã®ã¹ãããã夿´ãããããã¹ãããå ã®æ°ãããã¼ããä½ã§ãããã示ãã¬ãã¼ããã³ã³ã½ã¼ã«ã«è¨é²ããã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| DOM > # eventdef-htmlslotelement-slotchange > |
| HTML > # handler-onslotchange > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
HTMLSlotElement