亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過 javascript 將函數添加到元素

通過 javascript 將函數添加到元素

哈士奇WWW 2023-11-11 16:01:34
所以我有一個循環來初始化數組中的元素和屬性,并且我已經成功添加了我需要的所有內容,除了一件事,一個函數。有問題的循環如下:for (const character of result) {    let image = document.createElement("img");    image.src = character.src;    image.setAttribute('data-jval', character.jval);    image.setAttribute('id', character.id);    image.setAttribute('class', character.class)    image.setAttribute('draggable', 'true')    // the below function isn't being added to the divs    image.addEventListener('ondragstart', function(event){        let data = event.target.dataset.jval;        event.dataTransfer.setData("text", data);    })    let wrapper = document.createElement('div');    wrapper.appendChild(image);    section.appendChild(wrapper);  }我試圖添加到我的元素中的功能是:  function drag(event) {    let data = event.target.dataset.jval;    event.dataTransfer.setData("text", data);  }在嘗試用 JavaScript 創建元素之前,我將它們放在 HTML 中,它們看起來像這樣:<img data-jval="a" id="jval-a" src="./images/あ.png" class="j-char-img" draggable="true"  ondragstart="drag(event)"/>但是當我用循環重新創建它時,它看起來像這樣,缺少 ondragstart="drag(event"<img src="/images/あ.png" data-jval="i" id="jval-i" class="j-char-img" draggable="true">如果我的其余代碼有用,我也可以發布它。
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

只需“dragstart”而不是“ondragstart”事件:


for (const character of result) {

    let image = document.createElement("img");

    image.src = character.src;

    image.setAttribute('data-jval', character.jval);

    image.setAttribute('id', character.id);

    image.setAttribute('class', character.class)

    image.setAttribute('draggable', 'true')


    // the below function isn't being added to the divs

    image.addEventListener('dragstart', drag);


    let wrapper = document.createElement('div');

    wrapper.appendChild(image);

    section.appendChild(wrapper);

  }


  function drag(event) {

    let data = event.target.dataset.jval;

    event.dataTransfer.setData("text", data);

  }

因此,基本上,當您編寫內聯事件處理程序時,您可以在事件之前添加前綴on,就像之前將事件處理程序放入標記中一樣img。對于任何其他事件也是如此:


click => onclick

submit => onsubmit

keydown => onkeydown


查看完整回答
反對 回復 2023-11-11
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

#try to add Semicolon;

    image.setAttribute('class', character.class);

    image.setAttribute('draggable', 'true');

    // the below function isn't being added to the divs

    image.addEventListener('ondragstart', function(event){

        let data = event.target.dataset.jval;

        event.dataTransfer.setData("text", data);

    });


查看完整回答
反對 回復 2023-11-11
  • 2 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號