onclick - vue.js 在 v-on :click 上引用 div id

标签 onclick vue.js

使用 v-on:click 我想在 Vue.JS 中使用 div 的 id 设置一个变量 - 我该如何引用它?

<div id="foo" v-on:click="select">...</div>

<script>
    new Vue({
        el: '#app',
        data: {
        },
        methods: {
            select: function(){
                divID = this.id // ??
                alert(divID)
            }
        }
    })
</script>

最佳答案

您可以使用事件对象$event 扩展您的事件处理程序。这应该符合您的需求:

<div id="foo" v-on:click="select($event)">...</div>

事件在javascript中传递:

export default {
    methods: {
        select: function(event) {
            targetId = event.currentTarget.id;
            console.log(targetId); // returns 'foo'
        }
    }
}

正如评论中提到的,当将 `$event` 用作唯一参数时,它并不是绝对必要的。这是一个很好的提醒,当显式写入时,此属性会被传递。

但是,没有人会阻止你写简记法:

<div id="foo" @click="select">...</div>

请注意,当您添加另一个参数时,该方法将不会收到 `$event` 对象。您需要将它显式添加到您将在监听器中处理它的位置。任何参数顺序都有效:
<div id="foo" @click="select(bar, $event)">...</div>

要查找v-on 指令的更多选项,您可以查看vue 文档中的相应条目:

Vue API Documentation - v-on

关于onclick - vue.js 在 v-on :click 上引用 div id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36968153/

相关文章:

android - 来自另一个类的 Webview.loadurl

php - javascript 在 onclick 处包含文件

javascript - onMousedown 与 onClick 的缺点?

javascript - v-model 不会实时更新特定字段的值。具有相同数据类型的其他字段工作正常。怎么了?

javascript - 我们可以像在 Angular 中那样在创建 Vue.js 组件时将 HTML、JS 和 CSS 文件分开吗?

jquery - 使用 jQuery 来回更改 html 内容

vue.js - VueJS 项目中正确的 MaterializeCSS 初始化

javascript - Vue单元测试中缺少必需的 Prop 错误

javascript - mustache 中的Vue模板语法增量

javascript - 同时点击2个元素?