由于程序要求,我有一个应该保持关注的输入。在使用软件时,输入可能会在某些时候被隐藏,但是当再次出现时它应该恢复焦点,但它并没有。如果您检查输入上的绑定事件,您仍然可以看到它实际上没有丢失事件。
有一个简单的jsfiddle显示这种行为:https://jsfiddle.net/5puu261v/
$('#barcode').focus()
$('#barcode').focusout(function(){
$(this).focus();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="$('#barcode').toggle()">Toggle input</button>
<input type="text" id="barcode" />
&#13;
如果我能在不重新绑定事件的情况下修复或避免它,我将不胜感激。
修改
关键是:为什么输入在切换之后没有聚焦,当点击任何其他元素时(作为再次显示它的按钮)?
答案 0 :(得分:1)
<强> Updated fiddle 强>
您可以将select *
from t
where new_status_id = 'completed'
and not exists (
select 1
from t as i
where i.task_id = t.task_id
and i.new_status_id = 'resolved'
)
添加到点击事件中,以便每次点击按钮时都会重点关注输入,例如:
.focus()
HTML:
$('button').click(function(){
$('#barcode').toggle().focus();
});
希望这有帮助。
<button>Toggle input</button>
<input type="text" id="barcode" />
$('#barcode').focus()
$('#barcode').focusout(function(){
$(this).focus();
});
$('button').click(function(){
$('#barcode').toggle().focus();
});
答案 1 :(得分:0)
您可以在focus
按钮事件中再次调用方法onclick
:
$('#barcode').focus()
$('#barcode').focusout(function(){
$(this).focus();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="$('#barcode').toggle();$('#barcode').focus();">Toggle input</button>
<input type="text" id="barcode" />
&#13;