亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

使用 v-html 時(shí),點(diǎn)擊事件在 div 內(nèi)不起作用 - vue js
P粉521013123
P粉521013123 2024-03-25 20:48:41
0
1
918

我有一個(gè) contenteditable div 並使用 v-html 新增原始 html,包括點(diǎn)擊事件。但在這種情況下,點(diǎn)擊事件不起作用。檢查元素顯示 div 上有一個(gè)點(diǎn)擊事件,但它仍然不起作用。

如果我在 contenteditable div 中使用點(diǎn)擊事件對任何其他 div 進(jìn)行硬編碼,那麼它就可以工作。不知道我這樣做是否正確。 :

<div id="div_textarea2" v-html="temp_testing_div2" contenteditable="true"></div>


   data () {
    return {
          temp_testing_div2: `<div @click="ClickLine">Click this</div>`,

}
}


   ClickLine(){
   alert("Clicked");
}

P粉521013123
P粉521013123

全部回覆(1)
P粉212114661

@HermantSah v-html 不會綁定任何 Vue 指令,例如 @click 事件。請參閱此處的文件。

解決方法可能是在父 div 上設(shè)定 @click 事件,並在模板字串中為元素提供可區(qū)分的內(nèi)容,例如 id。
然後您可以攔截該事件並檢查單擊了哪個(gè)元素。如果該元素與模板字串中的元素匹配,請執(zhí)行某些操作等。下面是一個(gè)粗略的範(fàn)例。

... // in your script section data() { return { temp_testing_div2: `
Click this
`, } }, methods: { handleLineClick(e) { let clickedElId = e.target.id if (clickedElId === 'temp_testing_div2') { console.log("temp_testing_div2 clicked!", e) } else { console.log('another element was clicked') } } }

在我看來,這一切都感覺有點(diǎn)混亂??赡苡幸环N更簡單的方法可以實(shí)現(xiàn)您的願(yuàn)望。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板