如何防止元素失去焦点?
如何将焦点放在一个文本框上? 即使您点击浏览器中的任何位置。
$("#txtSearch").focus();
您需要订阅textbox
的blur
事件并使用小超时恢复焦点:
$('#txtSearch').blur(function (event) { setTimeout(function () { $("#txtSearch").focus(); }, 20); });
这样您就不必依赖订阅页面上任何其他元素的事件。 如果您订阅了body click
或html click
,那么如果任何其他元素阻止其click
事件的传播,它将不会运行,当Tabed退出textbox
时也不会运行。
例:
$("html").click(function(){ $("#txtSearch").focus(); });
现场演示: http : //jsfiddle.net/QhaLY/
$('body').click(function(){$("#txtSearch").focus();});
除了单击远离输入的区域(即标签)之外,还有其他方法可以失去焦点。 如果你想防止失去焦点使用模糊事件,即
document.getElementById('txtSearch').addEventListener('blur', e => { e.target.focus(); });