我試圖在單擊搜索圖示時專注于輸入,以便用戶無需手動單擊輸入即可開始輸入。理想情況下,它應該是這樣的,但由于某種原因,focus() 對這個輸入不起作用。
$('.header__icons a[role="button"]').click(function(){
$('#q').focus();
})
我嘗試了各種選項,但什么都沒有。我看到這個輸入在點擊時得到“焦點可見”和“資料焦點可見”。我嘗試手動添加它們,但它也沒有聚焦。我也無法在檔案中找到與此相關的任何功能。
編輯:代碼作業正常,只是添加了 setTimeout ......而開發控制臺是我在這里沒有看到任何變化的原因:)
uj5u.com熱心網友回復:
實際上,您擁有的代碼應該可以作業。我建議您關閉瀏覽器的開發者控制臺并再次測驗。它可能不起作用的原因是 focus() 不會從開發控制臺竊取焦點。
嘗試在開發控制臺中使用 setTimeout,然后在瀏覽器視窗中快速單擊,然后您應該會看到它聚焦搜索框。
setTimeout(function() { $('input[name="q"]').focus() }, 3000);
uj5u.com熱心網友回復:
使用 setTimeout 等待影片完成
$('.header__icons a[role="button"]').click(function() {
setTimeout(function() {
$('#q').focus();
}, 1000)
})
uj5u.com熱心網友回復:
問題是當用戶單擊按鈕時,該欄位尚不可見,因此無法聚焦。不過,它會在下一個滴答聲中可見(它是否透明無關緊要 - 這與它是否完全渲染有關),因此您可以使用setTimeout超時為零:
$('.header__icons a[role="button"]').click(function(){
setTimeout(() => $('#q').focus(), 0)
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359719.html
標籤:javascript 查询
上一篇:陣列長度為零但具有可訪問元素
