我有一個<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