vue-material/src/components/mdButtonToggle/mdButtonToggle.vue

48 lines
1.1 KiB
Vue

<template>
<div class="md-button-group md-button-toggle">
<slot></slot>
</div>
</template>
<style lang="scss" src="./mdButtonToggle.scss"></style>
<script>
let onClickButton;
export default {
props: {
mdSingle: String
},
mounted() {
this.$children.forEach((child) => {
let element = child.$el;
let toggleClass = 'md-toggle';
onClickButton = () => {
if (this.mdSingle) {
this.$children.forEach((child) => {
child.$el.classList.remove(toggleClass);
});
element.classList.add(toggleClass);
} else {
element.classList.toggle(toggleClass);
}
};
if (element && element.classList.contains('md-button')) {
element.addEventListener('click', onClickButton);
}
});
},
beforeDestroy() {
this.$children.forEach((child) => {
let element = child.$el;
if (element && element.classList.contains('md-button')) {
element.removeEventListener('click', onClickButton);
}
});
}
};
</script>