如何防止元素失去焦点?

新手上路,请多包涵

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

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

原文由 Bonesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 667
1 个回答

您需要订阅 blur 事件 textbox 并在短时间内恢复焦点:

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

这样您就不会依赖于订阅页面上任何其他元素的事件。如果您订阅 body clickhtml click ,如果任何其他元素阻止传播其 click 事件,它也不会运行来自 textbox

例子:

 <!-- I will not propagate my click to top level DOM elements -->
<button id="button">Click me</button>

<script>
$('#button').click(function (event) {
    event.stopPropagation();
});
</script>

原文由 Konstantin Dinev 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题