如何防止元素失去焦点?

如何将焦点放在一个文本框上? 即使您点击浏览器中的任何位置。

$("#txtSearch").focus(); 

您需要订阅textboxblur事件并使用小超时恢复焦点:

 $('#txtSearch').blur(function (event) { setTimeout(function () { $("#txtSearch").focus(); }, 20); }); 

这样您就不必依赖订阅页面上任何其他元素的事件。 如果您订阅了body clickhtml 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(); });