寫suggest的時候,有時我們快速刪除輸入框的文字後,但是suggest下拉列表還有出現,導致的原因是因為ajax異步請求造成的。
雖然我們把輸入框的內容都刪除了,甚至做了停止後續請求的相關操作,但是由於ajax是異步的,即使你停止了後續的操作,但是最後一次請求的數據還在回來的路上。
解決辦法看代碼:
var inp = document.getElementById('inp'), timer = 0; inp.oninput = function (e) { var val = e.target.value; var f = function () { alert(val) } if (val === '') { f = function () { console.log('setState = []'); } } clearTimeout(timer); timer = setTimeout(function () { f(); }, 400); }
我這裡貼的代碼只是解決思路,把獲取到請求回來的數據後續的相關操作先封裝到函數裡,當檢測到value為空的時候,把函數的操作變化一下,就不會出現suggest數據框了。
以上所述是小編給大家介紹的有關suggest快速刪除後仍然出現下拉列表的bug問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!