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


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

    1. <ul id="mttUl" class="mttUl">
    2. <li v-for="(item,index) in aboutData.mttImg" :key="index">
    3. <!-- -->
    4. <img :src="item.img" :alt="item.name" @click="stretchFn($event,index)">
    5. </li>
    6. </ul>
    7. <script>
    8. export default {
    9. data(){
    10. return {
    11. //图片点击切换
    12. active:0,
    13. removeAc:-1,
    14. isStatus:false, //判断当前是展开还是收回
    15. currentIndex:-1, //获取当前下标
    16. switchEle:0, //切换点击元素
    17. }
    18. },
    19. methods: {
    20. stretchFn($event,index){
    21. var getEle = document.querySelectorAll('.mttUl li'); //获取所有的li元素;
    22. if(this.switchEle != index){
    23. getEle[this.switchEle].classList.remove('active');
    24. }
    25. for(let i = 0 ; i < getEle.length; i++){
    26. if(getEle[index].classList.contains('active')){ //是否含有active
    27. getEle[index].classList.remove('active') //移除active
    28. }else{
    29. getEle[index].classList.add('active'); //添加active
    30. this.switchEle = index;
    31. }
    32. }
    33. }
    34. }
    35. }
    36. </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属性

  • 相关阅读:
    Linux安装Tomcat
    苹果系统(MacOS)无法下载Android SDK或下载缓慢解决办法
    论文分享|NeurIPS2022‘华盛顿大学|俄罗斯套娃表示学习(OpenAI使用的文本表示学习技术)
    RabbitMQ 消息中间件与集群的部署
    Matlab绘制双纵轴图(yyaxis函数)
    DataX从入门实战到精通一文搞定
    SpringCloud学习笔记(四)
    3dmax渲染大图有斑点怎么办?
    vue中常用的两种路由模式
    【C++】数组操作
  • 原文地址:https://blog.csdn.net/qq_30607437/article/details/127107779