页面加载后如何在vue-multiselect中添加侦听器?

时间:2018-09-20 12:22:52

标签: vue.js vuejs2 vue-multiselect

我需要向vue-multiselect添加侦听器,例如(但这不起作用)

$('.multiselect').change(console.log("multiselect changed"));

必须将其添加到updated挂钩中。

我已经尝试了很多事情,但是由于vue-multiselect的本质,传统的jQuery不起作用即,您不能听multiselect__input上的更改,因为它值实际上并没有改变。

根据状态,添加/删除了一个.multiselect__single元素,但是我宁愿不监听\测试html的更改。

1 个答案:

答案 0 :(得分:1)

vue-multiselect events不包含change,但是您可能正在寻找input(在value更改后发出)或searchChanged(发出搜索查询更改后)。

listen to an event的惯用方式是使用以下语法:@EVENTNAME="METHOD"。示例:

<multiselect @input="onSelection">

new Vue({
  el: '#app',
  components: {
  	Multiselect: window.VueMultiselect.default
	},
  data() {
    return {
      value: '',
      options: ['list', 'of', 'options']
    };
  },
  methods: {
    onSelection(newValue) {
      console.log({newValue})
    }
  }
})
<script src="https://unpkg.com/vue@2.5.17"></script>
<script src="https://unpkg.com/vue-multiselect@2.1.0"></script>
<link rel="stylesheet" href="https://unpkg.com/vue-multiselect@2.1.0/dist/vue-multiselect.min.css">

<div id="app">
  <multiselect :options="options" v-model="value" @input="onSelection"></multiselect>
  <div>value: {{value}}</div>
</div>