2017-02-28 55 views
0

我有一個輸入字段,v-on:input它運行一個名爲activate方法,看起來像這樣:Vuejs - 在輸入時,運行的功能(但有延遲)

export default: { 
    data() { 
     return { 
      isHidden: true 
     } 
    }, 
    methods: { 
     activate() { 
      this.isHidden = false; 
     } 
    } 
} 

isHidden開啓/關閉一些圖標(這個數據屬性並不重要,我只是爲了舉例而使用它)。

所以目前,當用戶做一個input它立即打開activate函數。有沒有辦法通過setTimeout來延遲?我試着做以下,但它不工作:

methods: { 
    setTimeout(function() { 
     activate() { 
      this.isHidden = false; 
     } 
    }, 500) 
} 
+0

什麼類型的輸入是什麼呢?對於某些輸入,您可能需要[debounce/throttle](https://css-tricks.com/debouncing-throttling-explained-examples/)觸發'input'事件時運行的任何方法。 – wing

+0

這只是一個標準的文本輸入字段。 Joe Attardi的答案適用於我,但我也會研究debounce/throttle。 – MonkeyOnARock

回答

4

試試這個:

methods: { 
    activate() { 
    setTimeout(() => this.isHidden = false, 500); 
    } 
}