我有一个<select>
-element,它具有绑定到它的数据属性,使用Vue中的v-model
。是否可以通过单击Vue select元素来检测是否触发了更改事件?
有时候我想动态改变这个值。我还有一个事件监听器附加在这个元素上,这个元素在change
事件中被触发。见代码例如:
<template>
<div class="mySelector">
<select id="testSelect" v-model="mySelectModel"
@change="onChange($event)">
<template v-for="(item, index) in someList">
<option :class="['btn', 'btn-default', 'removing-button']" :value="index">{{item.name}}</option>
</template>
</select>
</div>
</template>
<script>
export default {
data() {
return {
mySelectModel: null
}
},
props: {
},
methods: {
customChange: function() {
this.mySelectModel = ... // some value we from somewhere else that is set dynamically on some condiftion
},
onChange: function (event) {
if (!event) return;
// DO SOMETHING THAT WE ONLY WANT TO DO ON A REAL CLICK
}
},
}
</script>
我的问题是,当我改变数据值动态地mySelectModel
,像在customChange
-method,所述change
事件也被称为,触发方法onChange
。我只想用这种方法来做东西,如果它真的是由真正的点击触发的,而不是动态改变的。
我无法找到一种方法来区分这些情况下的change
-事件是由点击触发的,还是因为某种其他原因而被更改时。有什么建议么?
的'change'事件不应该被调用。看到这个小提琴https://jsfiddle.net/gpedcsr4/1/。你能举出一个这样的例子吗? – thanksd