javascript - 从选择列表中选择一个选项时如何触发 Vue 事件

标签 javascript html vue.js vue-component

JSFiddle:https://jsfiddle.net/qc7yqvvs/

当我使用鼠标点击一个选项时它起作用,但如果我使用箭头键导航选项它不会更新乘数。该指南只有 :click 事件,我尝试使用 :select:enter 和其他事件,但它们似乎不存在。

最佳答案

您可能正在关注的事件是 v-on:change 或简写:@change。然后,您将在 select 而不是选项上设置它。

但是,您可能会发现通过将乘数更改为一个对象然后使用间隔值来选择相应的对象,这样做会更容易,即

编辑

根据您的评论,我发现在组件内构建对象可能很棘手,因此您宁愿在 html 中设置它们。为此,请尝试绑定(bind)每个选项的值,然后在 v 模型上设置一个对象,即

Vue.component('my-component', {
    data: function() {
        return {
            value: {},
        }
    },
    computed: {
        total: function() {
            return this.value.interval ? (this.value.interval * this.value.multiplier).toFixed(2) : 0
        }
    }
});

const app = new Vue({
    el: '#app',
});
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
    <my-component inline-template>
        <div>
            <select size="6" v-model="value">
                <option :value="{ interval: 24, multiplier: 1 }">24</option>
                <option :value="{ interval: 12, multiplier: 0.71 }">12</option>
                <option :value="{ interval: 8, multiplier: 0.56 }">8</option>
                <option :value="{ interval: 4, multiplier: 0.47 }">4</option>
                <option :value="{ interval: 2, multiplier: 0.25 }">2</option>
                <option :value="{ interval: 1, multiplier: 0.12 }">1</option>
            </select>
            <p>
                value: {{ value }}
            </p>
            <p>
                Total: {{ total }}
            </p>
        </div>
    </my-component>
</div>

关于javascript - 从选择列表中选择一个选项时如何触发 Vue 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40820509/

相关文章:

javascript - 悬停时的 Jquery 将类添加到另一个元素根本不起作用

javascript - 在 if-else 中看不到 process.env.NODE_ENV

javascript - jquery ajax 调用导致页面刷新

vue.js - 如何从另一个组件访问 App.vue?

javascript - 在 Vue&Vuex 中,如何激活子组件中的 onclick 方法?

javascript - 在 Fixed Header Uncaught TypeError top undefined 中

html - 如何将背景图片保留在页面底部?

javascript - 去掉字符串中间的一个字符 : without removing inner element

javascript - 选择 LI 元素中的嵌套 div

javascript - 在 Vuetify 中使用 <template> 的目的是什么?