功能描述:当一直点击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属性