对于我的表单输入,我想重新执行我的聚焦状态的动画,输入如下:
<input type="text" class="form-control">
您可以在此处看到它:https://jsfiddle.net/esg1dzy0/
说完了,我不能这样做:
$(document.activeElement).click(function(){
this.focus();
});
这可能吗?我做错了什么?
答案 0 :(得分:2)
您需要先模糊元素。
在此之前,您需要确保这不是元素的第一次点击。
此外,您的原始选择器只会选择您的代码段运行时处于活动状态的元素。
最后,使用mousedown来避免闪烁。
$('.form-control').mousedown(function(){
if(!$(this).is(':focus')) return;
$(this).blur().focus();
});
答案 1 :(得分:0)
我希望这可以帮到你:
$('.form-control').on('click', function(){
var $this = $(this);
var duration = 300;
var enableAgain = function(){
$this.blur().focus();
};
setTimeout(enableAgain, duration);
});
这会在blur()
之后再次触发focus()
和300 milliseconds
事件(在最好的情况下),这与transition-duration
相同,您可能想要更高价值如350
。
BTW我已编辑了您的https://jsfiddle.net/esg1dzy0/文件。