我想将href属性设为按钮点击事件。
<a v-on:click.prevent="func($event)" href="/user/all/2">
<i class="fa fa-edit"></i>
<span>Get Data</span>
</a>
Main.JS档案
new Vue({
el: 'body',
methods: {
func: function (event) {
element = event.target;
console.log(element); // Output : Select span|i|a element
href = element.getAttribute('href');
},
}
});
目标事件未选择元素。它选择被点击的元素。
答案 0 :(得分:12)
您需要event.currentTarget
,而不是event.target
。这是一个小提琴:https://jsfiddle.net/crswll/553jtefh/
答案 1 :(得分:4)
这是“Vue方式”。 Vue是关于可重用的组件。因此,首先创建组件:
<script src="https://unpkg.com/vue"></script>
<div id="app">
<my-comp></my-comp>
</div>
<script>
// register component
Vue.component('my-comp', {
template: '<div>Just some text</div>'
})
// create instance
new Vue({
el: '#app'
})
</script>
现在添加自定义属性并读取其值:
<script src="https://unpkg.com/vue"></script>
<div id="app">
<my-comp my-attr="Any value"></my-comp>
</div>
<script>
Vue.component('my-comp', {
template: '<div>aaa</div>',
created: function () {
console.log(this.$attrs['my-attr']) // And here is - in $attrs object
}
})
new Vue({
el: '#app'
})
</script>
答案 2 :(得分:0)
var app = {
func: function (event) {
console.log(event.currentTarget.id);//this will get whole html tag
console.log(event.currentTarget.href);//this will show href value
}
}
// Apps
var app_vue = new Vue({
data: app,
}).$mount("#app_vue");
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app_vue" v-cloak class="card" >
<a v-on:click.prevent="func" href="/user/all/2">
<i class="fa fa-edit"></i>
<span>Get Data</span>
</a>
</div>