鍍金池/ 問答/HTML/ 不知道是JS還是vue的問題

不知道是JS還是vue的問題

我給下面的em元素綁定了一個(gè)click事件 第一次點(diǎn)擊能觸發(fā) 觸發(fā)之后 通過innerHTML或者innertText改了內(nèi)容 之后再點(diǎn)擊這個(gè)元素就不能同志觸發(fā)事件了 這是為什么呢

 獲取驗(yàn)證碼

getMessageCode(evt) {
let time = setInterval(() => {

      if (this.countDown <= 0) {
            clearInterval(time)
            this.countDown = 60
           //this.isSend = false
            evt.target.innerText = '重新發(fā)送驗(yàn)證碼'
      }else {
              this.countDown --
              evt.target.innerText = this.countDown + '秒倒計(jì)時(shí)'
      }

}, 1000)
}

回答
編輯回答
柒喵

innerText 相當(dāng)于重新渲染了,之前的都清除了,你需要重新綁定相關(guān)事件。或者將事件綁定到父級(jí)元素,在冒泡到你想要觸發(fā)的子元素,你可以去看看jqueryon 是如何給未來(lái)元素綁定事件的。

2018年6月18日 11:33
編輯回答
葬憶

再點(diǎn)擊這個(gè)元素的時(shí)候this.countDown已經(jīng)小于0了,走 if (this.countDown <= 0) {時(shí)把點(diǎn)擊的時(shí)候設(shè)置的interval給清了,當(dāng)然沒效果了

2018年3月29日 13:47
編輯回答
旖襯

如果你用了vue,那就不應(yīng)該,這樣操作dom。正確的方式應(yīng)該是 data{btnText:'發(fā)送驗(yàn)證碼'}
<input type="button" v-model="this.btnText"/>。再倒計(jì)時(shí)候去改變 btnText的值。

2017年5月23日 03:06
編輯回答
避風(fēng)港

通過innerHTML或者innertText這里,把原來(lái)的em標(biāo)簽弄沒了,或者是新的標(biāo)簽了,沒click事件了

2017年5月29日 20:31