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

48 lines
1.1 KiB
Vue
Raw Normal View History

2016-07-18 16:00:51 +00:00
<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 {
2016-07-18 20:05:08 +00:00
props: {
type: String
},
2016-07-18 16:00:51 +00:00
ready() {
this.$children.forEach((child) => {
let element = child.$el;
2016-07-18 20:05:08 +00:00
onClickButton = () => {
if (this.type === 'radio') {
this.$children.forEach((child) => {
child.$el.classList.remove('md-toggle');
});
element.classList.add('md-toggle');
} else {
2016-07-18 16:00:51 +00:00
element.classList.toggle('md-toggle');
2016-07-18 20:05:08 +00:00
}
};
if (element && element.classList.contains('md-button')) {
element.addEventListener('click', onClickButton);
2016-07-18 16:00:51 +00:00
}
});
},
beforeDestroy() {
this.$children.forEach((child) => {
let element = child.$el;
if (element && element.classList.contains('md-button')) {
child.removeEventListener('click', onClickButton);
}
});
}
};
</script>