我正在学习Vue.JS,遇到了一点问题。我希望用户能够点击一个<a href="#"></a>
标签,使用e.preventDefault()
,并获取与链接关联的对象。以下是我的代码(注意我在{{
之前加上了@
,因为我正在使用Blade):
<a href="#"
class="list-group-item"
v-repeat="responder: responders"
v-on="click: showResponder(responder)">
<div class="media">
<div class="media-left">
<img src="" v-attr="src: responder.avatar" alt="" class="media-object"/>
</div>
<div class="media-body">
<h4 class="media-heading">@{{ responder.first_name }} @{{ responder.last_name }}</h4>
<p>
<strong><i class="fa fa-phone"></i> Phone:</strong> @{{ responder.phone }}
</p>
</div>
</div>
</a>
还有 Javascript 代码:
var vm = new Vue({
el: "#responderContainer",
data: {
activeResponder: null,
responders: []
},
methods: {
showResponder: function(responder)
{
// Here is where I wish to prevent the
// link from actually firing its default action
responder.preventDefault();
this.activeResponder = responder;
}
}
});
这个方法可以获取responder
对象,但是会触发链接 - 我需要既能e.preventDefault()
又能获取对象。
谢谢!
v-on:click.prevent
。 - Mladen Danic<a href="mailto:someone@example.org">
链接)时,如何防止事件传播? - Adam Reisprevent
将会阻止默认行为,而prevent.stop
将会同时停止事件传播。例如:如果您正在触发下拉菜单导航中锚点点击的自定义方法,则prevent.stop
还将阻止'click'事件,使得下拉菜单保持打开状态。prevent
将会停止锚链接,但允许事件向上传播以执行'click'行为。 - iamface时单击
table中的
tr。我在 'td
中使用了.self
,并将方法从tr
移动到每个td
。看看这个:https://dev59.com/fsHqa4cB1Zd3GeqP7s-O#74465289 - JotaPardo