我正在尝试将焦点设置为此Leaflet Plugin输入字段的搜索栏,但它不起作用。我尝试过使用以下内容:
//jquery
$("#leaflet-control-geosearch-qry").focus();
//html
document.getElementById("leaflet-control-geosearch-qry").focus();
您可以自己尝试一下。焦点不会设置为使用上述行设置搜索栏。
将其中一个映射到一个按钮并单击该按钮会将焦点设置到搜索栏。
<script>
//Set Focus to Search Box
function setFocusToSearchBar(){
document.getElementById("leaflet-control-geosearch-qry").focus();
//or $("#leaflet-control-geosearch-qry").focus();
}
</script>
<div id="Focus_on_Searchbar">
<button id="sidebar_button_focus" onclick="setFocusToSearchBar();">
Focus on Searchbar
</button>
</div>
这个有效! 在Chrome / FF控制台中使用其中一个不起作用,我不知道为什么不这样做,因为它适用于按钮。?
有什么想法吗? 我正在使用Bootstrap作为我的Header-Bar ...也许这很重要?
答案 0 :(得分:9)
有效。发生了什么事情,当您的控制台打开时,控制台具有焦点。
在控制台上输入:
setTimeout(function(){
document.getElementById("leaflet-control-geosearch-qry").focus();
}, 5000); //Will deffer execution 5 seconds
然后关闭控制台。 5秒后,它将聚焦。 所以,这不是编码问题,不要担心;)
干杯
答案 1 :(得分:0)
代码是正确的,当你尝试设置焦点时,DOM还没有准备好。您是否使用
封装了代码?$(document).ready(function() {
…
$("#leaflet-control-geosearch-qry").focus();
…
});
答案 2 :(得分:0)
$('#leaflet-control-geosearch-qry').attr('tabIndex', -1).focus();