代码
提交代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <div id="app"> <div v-color:[colorstyle]="color" style="border: 1px solid #ccc;">Hello !</div> <div v-color:[borderstyle]="color" style="border: 1px solid #ccc;">Hello !</div> <div v-color:[backgroundstyle]="color" style="border: 1px solid #ccc;">Hello !</div> <button @click="changeColor">切换颜色</button> </div> </body> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script type="text/javascript"> Vue.directive('color', { bind: function (el, binding, vnode) { var s = binding.arg el.style[s] = binding.value }, update(el, binding) { var s = binding.arg el.style[s] = binding.value } }) var vm = new Vue({ el: '#app', data() { return { color: 'red', colorstyle: 'color', borderstyle: 'border-color', backgroundstyle: 'background-color', } }, methods: { changeColor() { this.color = '#' + Math.floor( Math.random() * 0xffffff ).toString(16); } } }) </script> </html>
运行结果