标签,e.preventDefault()也可以获取与链接关联..."> 标签,e.preventDefault()也可以获取与链接关联..."/> 标签,e.preventDefault()也可以获取与链接关联..."> 标签,e.preventDefault()也可以获取与链接关联...">

VueJS-防止链接单击时出现默认值,但还会捕获对象

JavaScript

GOLEY前端

2020-03-12

我正在学习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()获取对象又能获取对象。

谢谢!

第1181篇《VueJS-防止链接单击时出现默认值,但还会捕获对象》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1个回答
Tony达蒙Mandy 2020.03.12

另外,在Vue 1.x中,您还可以使用event修饰符 .prevent

HTML:

<a v-on:click.prevent="showResponder(responder)">...</a>

您也可以停止传播:

<a v-on:click.prevent.stop="showResponder(responder)">...</a>

JS:

...
            showResponder: function(responder)
            {
                // No need to prevent any more
                this.activeResponder = responder;
            }
...

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android