最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue操作dom并為dom增加點(diǎn)擊事件方式

 更新時(shí)間:2024年04月24日 15:40:12   作者:大松呀  
這篇文章主要介紹了vue操作dom并為dom增加點(diǎn)擊事件方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

本文實(shí)現(xiàn)的效果是利用js 在element圖片放大后新增加一個(gè)下載的按鈕 效果如下

實(shí)現(xiàn)效果

環(huán)境

項(xiàng)目中采用 vue + element 的方式

圖片放大預(yù)覽主要借助 element里面內(nèi)部的一個(gè)未公開組件

有興趣的小伙伴可以自行查看源碼

分析過程

打開控制臺后 發(fā)現(xiàn)這里實(shí)際 是在一個(gè)名字為el-image-viewer__actions__innerclass 下追加一個(gè) i 元素的標(biāo)簽 ,icon 使用element自帶的圖標(biāo)即可

分析可以得知,我們只需要在 class el-image-viewer__actions__inner 后追加元素即可

vue由于是虛擬dom 追加元素必須要等待 dom的渲染完成

也就是必須要在 mounted 鉤子完成

但是這個(gè)時(shí)候 我們不能使用vue的 @click 來綁定事件

到 mounted 這個(gè)步驟的時(shí)候 vue 已經(jīng)進(jìn)行過模板的編譯 添加@click 就無法識別

所以這里需要用到原生的方法來添加dom

代碼實(shí)現(xiàn)

	// 需要在頁面渲染完后
	this.$nextTick(() => {
		// 獲取對應(yīng)的 dom元素
      var otest = document.querySelector("div.el-image-viewer__actions__inner");
      // 創(chuàng)建一個(gè)新dom,并設(shè)置icon,綁定點(diǎn)擊事件
      var newEle = document.createElement("i");
      newEle.className = "el-icon-download";
      newEle.onclick = () => {
        window.open(
          this.srcList[0] + "?response-content-type=application/octet-stream"
        );
      };
      // 在對應(yīng)dom 下追加創(chuàng)建的dom
      otest.appendChild(newEle);
    });

到此為止 即可實(shí)現(xiàn)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

宁安市| 汤原县| 武山县| 阿克苏市| 错那县| 阜新市| 南通市| 汉寿县| 甘谷县| 天全县| 都兰县| 丰镇市| 罗源县| 长乐市| 洛浦县| 钟祥市| 遵义市| 日照市| 稻城县| 宁乡县| 安阳市| 仙桃市| 秦安县| 巢湖市| 大厂| 城口县| 临猗县| 射洪县| 兴文县| 景宁| 武胜县| 岚皋县| 武冈市| 永川市| 甘谷县| 太原市| 灵璧县| 长汀县| 金乡县| 大姚县| 浦东新区|