C_M*_*jor 15 javascript jquery
如何将焦点放在一个文本框上?即使你点击浏览器中的任何地方.
$("#txtSearch").focus();
Run Code Online (Sandbox Code Playgroud)
Kon*_*nev 24
您需要订阅blur事件textbox并通过一个小超时恢复焦点:
$('#txtSearch').blur(function (event) {
setTimeout(function () { $("#txtSearch").focus(); }, 20);
});
Run Code Online (Sandbox Code Playgroud)
这样您就不依赖于订阅页面上任何其他元素的事件.如果您订阅body click或者html 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>
Run Code Online (Sandbox Code Playgroud)
Konstantin Dinev 的答案在大多数情况下都可以正常工作,但是如果您不想仅在单击 html 的某些部分时才失去焦点,请执行以下操作:
$(".nofocus").on( "mousedown", function (e) {
return false;
});
Run Code Online (Sandbox Code Playgroud)
就我而言,我正在做一个小的 html 文本编辑器,我不想在按下操作按钮时失去控制权,但在任何其他情况下都是如此。
我只需要在按钮上添加 nofocus 类,它就不会控制
$("html").click(function(){
$("#txtSearch").focus();
});
Run Code Online (Sandbox Code Playgroud)
现场演示: http: //jsfiddle.net/QhaLY/
| 归档时间: |
|
| 查看次数: |
16953 次 |
| 最近记录: |