是小圆子鸭 2021-07-04 09:15 采纳率: 50%
浏览 1654
已采纳

Vue 两个元素绑定同一个点击事件,点击一个元素,两个元素同时触发点击事件

<image @click="changeSrc()" style="width: 19px;height: 10px;margin-left: -20px;" :src="imgUrl" mode="">

<image @click="changeSrc()" style="width: 19px;height: 10px;margin-left: -20px;" :src="imgUrl" mode="">

两张图片绑定了同一个点击事件

changeSrc() {
if (this.imgUrl === '../../static/login/icon_yinc_h5.png') {
this.imgUrl = '../../static/login/icon_xs_h5.png'
this.inputType = 'text'
} else if (this.imgUrl === '../../static/login/icon_xs_h5.png') {
this.imgUrl = '../../static/login/icon_yinc_h5.png'
this.inputType = 'password'
}
}

img

img

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2021-07-04 11:35
    关注

    2个的图片需要用2个变量,不能共用一个,共用一个你修改了当然同时变化了。inputType不知道你如何使用的,如果要分开控制也需要单独配置不同的变量

    改下面就行了,有帮助请采纳,谢谢~

    <div id="app">
    <image @click="changeSrc" style="width: 19px;height: 10px;margin-left: -20px;" :src="imgUrl1" mode="" alt="1">
    
    <image @click="changeSrc" style="width: 19px;height: 10px;margin-left: -20px;" :src="imgUrl2" mode="" alt="2">
    </div>
    <script src="https://unpkg.com/vue@next" data-vue="3.0"></script>
    <script>
        Vue.createApp({
            data() {
                return {
                    imgUrl1: "../../static/login/icon_yinc_h5.png",
                    imgUrl2: "../../static/login/icon_yinc_h5.png"
                }
            },
            methods: {
                changeSrc(e) {
                    var el = e.target;//当前点击的img对象
                    var imgAttr = 'imgUrl'+el.getAttribute('alt');//获取alt属性,这个属性存储对应data对应的下标。
                    if (this[imgAttr] === '../../static/login/icon_yinc_h5.png') {
                        this[imgAttr] = '../../static/login/icon_xs_h5.png'
                        this.inputType = 'text'
                    } else if (this[imgAttr] === '../../static/login/icon_xs_h5.png') {
                        this[imgAttr] = '../../static/login/icon_yinc_h5.png'
                        this.inputType = 'password'
                    }
                }
            }
        }).mount('#app');
    </script>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥100 单片机hardfaulr
  • ¥20 手机截图相片分辨率降低一半
  • ¥50 求一段sql语句,遇到小难题了,可以50米解决
  • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
  • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
  • ¥15 虚拟机检测,可以是封装好的DLL,可付费