0

我需要像这样向 vue-multiselect 添加一个侦听器(但这不起作用)

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

它必须添加到更新的钩子中。

我已经尝试了很多东西,但是由于 vue-multiselect 的性质,传统的 jQuery 不起作用,即,你无法监听到的变化,multiselect__input因为它的值实际上并没有改变。

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

4

1 回答 1

1

事件不包括,但您可能正在寻找( vue-multiselectemitted after the changes) 或(emitted after the search query changes)。changeinputvaluesearchChanged

监听事件的惯用方法是使用以下语法:@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>

于 2018-09-23T07:29:35.727 回答