我在一页上有许多输入,它们具有相同的类并且没有 ID。
附加到类选择器的绑定(bind)事件,用于在条件为 true 时返回焦点。
但是当单击另一个输入时,焦点不会返回。
然后想想,因为在另一个元素中工作模糊,但不知道如何解决这个问题。
<input class="test" value="">
<input class="test" value="">
$(document).ready(function(){
if (condition) {
// return focus - not work
$(".test").blur(function(){
setTimeout(function() {
$(this).focus();
}, 100);
});
}
});
最佳答案
这里有两个问题。
首先,一旦 setTimeout
函数执行,this
现在是 window
对象,而不是输入之一。将原始 this
的引用存储为模糊处理程序的一部分。
其次,应移动条件检查。就目前情况而言,一旦模糊输入框,您实际上将被迫永远不会离开输入框,因为模糊处理程序已附加并且总是重新聚焦。我不知道您的条件
是什么,所以我将把它放在setTimeout
回调中。它也可以在 setTimeout
创建之前进行。
<强> Here's a verbose demo fiddle of an assumed implementation 。下面是一个淡化的示例:
<input class="test" value="">
<input class="test" value="">
$(document).ready(function(){
// return focus - not work
$(".test").blur(function(){
var that = this;
setTimeout(function() {
if (condition) {
$(that).focus();
}
}, 100);
});
});
关于javascript - 返回对具有相同类别的输入的模糊的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638128/