vue 点击当前元素进行显示隐藏,上次点过的元素隐藏

该博客介绍了一个使用Vue.js实现的功能,通过点击2来切换显示隐藏状态,当2展开时,点击1会隐藏2并显示1。文章详细解析了相关Vue代码,包括`v-for`循环、事件处理函数`stretchFn`以及类名操作,如`classList.add`和`classList.remove`。同时,补充了DOM操作和事件对象的相关知识。
摘要由CSDN通过智能技术生成

 功能描述:当一直点击2时,切换显示隐藏, 当2展开时,在点击1时,2隐藏,1显示。

<ul id="mttUl" class="mttUl">
    <li  v-for="(item,index) in aboutData.mttImg" :key="index">
        <!-- -->                      
        <img :src="item.img" :alt="item.name"  @click="stretchFn($event,index)">
    </li>
</ul> 

<script>
export default {
    data(){
        return {
            //图片点击切换
            active:0,
            removeAc:-1,
            isStatus:false,     //判断当前是展开还是收回
            currentIndex:-1,    //获取当前下标
            switchEle:0,    //切换点击元素  
        }
    },
    methods: {
        stretchFn($event,index){
            var getEle  = document.querySelectorAll('.mttUl li');   //获取所有的li元素;

            if(this.switchEle != index){

                getEle[this.switchEle].classList.remove('active');

            }

            for(let i = 0 ; i < getEle.length; i++){

                if(getEle[index].classList.contains('active')){  //是否含有active

                    getEle[index].classList.remove('active')   //移除active

                }else{

                    getEle[index].classList.add('active');    //添加active

                    this.switchEle = index;
                }
            }
        } 
    }
}
</script>
               

补充知识点:

$event 可以获取当前点击标签信息内容 

$event.currentTarget.parentElement.getAttribute('class')       //获取当前标签父元素class

$event.currentTarget.parentElement.parentElement;  //获取当前元素父元素的父元素

$event.currentTarget.parentElement.children;      //获取当前元素父元素下的子元素

document.querySelectorAll('.mttUl li')             //获取所有的指定类名元素

getEle[index].classList.contains('active')      // 判断当前元素是否含有某个类

getEle[index].classList.remove('active')        // 当前元素移除某个类

getEle[index].classList.add('active');           //当前元素添加某个类

  • e.target 获取当前点击的元素
  • e.currentTarget 获取绑定事件的元素
  • e.currentTarget.previousElementSibling 获取前(上)一个元素
  • e.currentTarget.parentElement 获取父元素
  • e.currentTarget.firstElementChild 获取第一个子元素
  • e.currentTarget.nextElementSibling 获取后(下)一个元素
  • e.currentTarget.getAttributeNode('class') 获得点击元素的class属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值