简体   繁体   English

Vuejs单击打开按钮时如何显示选择列表

[英]Vuejs How can I show select-list when I click on open button

i wrote like this but when i press the button all comboboxes show up but i want when i press the button in any combobox only that combobox will show up我是这样写的,但是当我按下按钮时,所有组合框都会出现,但我希望当我按下任何组合框中的按钮时,只有组合框会出现
HTML

             <div class="m-combobox">
                <div class="select-list" :class="{'sl-activate':isActivate}">
                    <div class="select-item" v-for="item in departments" :key="item.DepartmentId">
                        <i class="fas fa-check"></i>
                        <div class="select-item-text">{{item.DepartmentName}}</div>
                    </div>
                </div>
                <div class="select">
                    <input class="m-combobox-input" type="text" placeholder="Chọn/Nhập thông tin">
                    <div class="m-combobox-button" @click="activateCbb">
                        <i class="fas fa-angle-down"></i>
                    </div>
                </div>
            </div>
            <div class="m-combobox">
                <div class="select-list" :class="{'sl-activate':isActivate}">
                    <div class="select-item" v-for="item in positions" :key="item.PositionId">
                        <i class="fas fa-check"></i>
                        <div class="select-item-text">{{item.PositionName}}</div>
                    </div>
                </div>
                <div class="select">
                    <input class="m-combobox-input" type="text" placeholder="Chọn/Nhập thông tin">
                    <div class="m-combobox-button" @click="activateCbb">
                        <i class="fas fa-angle-down"></i>
                    </div>
                </div>
            </div>


data

data: function () {
return {
  positions: [],
  departments: [],
  isActivate: false,
};
}


Method

methods:{
activateCbb() {
  this.isActivate = !this.isActivate;
},
}

Tks all!全部谢谢!

Try like following snippet:尝试如下代码片段:

 new Vue({ el: '#demo', data() { return { positions: [{PositionId:1, PositionName:'ccc'}, {PositionId:2, PositionName:'ddd'}], departments: [{DepartmentId:1,DepartmentName: 'aaa'}, {DepartmentId:2,DepartmentName: 'bbb'}], isActivate: null, }; }, methods:{ activateCbb(type) { if(this.isActivate === type) { this.isActivate = null } else { this.isActivate = type } }, } }) Vue.config.productionTip = false Vue.config.devtools = false
 .sl-activate { display: block; } .inactive { display: none; }
 <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="demo"> <div class="m-combobox"> <div class="select-list" :class="isActivate === 'd' ? 'sl-activate' : 'inactive'"> <div class="select-item" v-for="item in departments" :key="item.DepartmentId"> <i class="fas fa-check"></i> <div class="select-item-text">{{item.DepartmentName}}</div> </div> </div> <div class="select"> <input class="m-combobox-input" type="text" placeholder="Chọn/Nhập thông tin"> <div class="m-combobox-button" @click="activateCbb('d')"> <i class="fas fa-angle-down"></i> </div> </div> </div> <div class="m-combobox"> <div class="select-list" :class="isActivate === 'p' ? 'sl-activate' : 'inactive'"> <div class="select-item" v-for="item in positions" :key="item.PositionId"> <i class="fas fa-check"></i> <div class="select-item-text">{{item.PositionName}}</div> </div> </div> <div class="select"> <input class="m-combobox-input" type="text" placeholder="Chọn/Nhập thông tin"> <div class="m-combobox-button" @click="activateCbb('p')"> <i class="fas fa-angle-down"></i> </div> </div> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM