- 34
- 0
自己封装了一个select的组件,写好了,测试一切正常,然鹅,如果页面调用多次的话,就冲突了。展开一个,所有组件都展开了,选择一个,所有的都跟着变
select 组件
<template id="selectComponent">
<div class="dropdown">
<button class="form-control dropdown-toggle text-left" type="button">
{{selectList[current]&&selectList[current].name}}
</button>
<div class="dropdown-menu btn-block" :class="{show:showSelect}">
<button class="dropdown-item" type="button" v-for="(item,index) in selectList" :data-index="index">{{item.name}}</button>
</div>
</div>
</template>
<script>
var dataid = ('selectComponent' + new Date().getTime() + Math.random()).replace('.', '');
var tpEl = getDom('#selectComponent').content.querySelector('.selectComponent');
tpEl.dataset.id = dataid;
Vue.component('selectComponent', {
template: '#selectComponent',
data: function() {
var vm = this;
return {
showSelect: false,
current: 0,
}
},
props: ['list'],
computed: {
selectList: function() {
return this.list;
}
},
mounted: function() {
var vm = this;
document.addEventListener('click', function(event) {
var el = event.target;
if (el.dataset.id == dataid || el.closest('[data-id=' + dataid + ']')) {
if (el.classList.contains('dropdown-toggle')) {
vm.showSelect = !vm.showSelect;
} else {
if (el.classList.contains('dropdown-item')) {
vm.current = el.dataset.index;
}
vm.showSelect = false;
}
} else {
vm.showSelect = false;
}
}, false);
},
watch: {
current: function(index) {
this.$emit('change', index);
}
}
});
</script>
调用方法:
<select-component @change="change" :list.sync="[{value:1,name:'test'}]"></select-component> 0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
