我需要向vue-multiselect添加侦听器,例如(但这不起作用):
$('.multiselect').change(console.log("multiselect changed"));
我已经尝试了很多事情,但是由于vue-multiselect的本质,传统的jQuery不起作用即,您不能听multiselect__input
上的更改,因为它值实际上并没有改变。
根据状态,添加/删除了一个.multiselect__single
元素,但是我宁愿不监听\测试html的更改。
答案 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>