我想在单击按钮后继续关注状态。保持状态意味着:
- 如果
<input/>
对焦,请在单击按钮后保持对焦; -
如果之前未对焦
<input/>
,则单击按钮后不要对焦。
所以点击后,由于<input/>
的当前对焦状态始终是"不对焦",我想得到<input/>
之前的对焦状态。
问题是blur
总是在事件之前调用click
。
我尝试过的:
// onclick event
this.$iptPassword.on('click', this.toggleShowPassword);
// callback
toggleShowPassword() {
console.log(this.$iptPassword.is(':focus')); // always return false
this.$iptPassword.attr('type', this.$iptPassword.attr('type') === 'password' ? 'text' : 'password');
}
创建了一个有效的 Plnkr - 切换输入类型 + 焦点状态
引入了 2 个变量 - "inputWasFocused"和"clickWasOutsideOfScope" - 使用这些变量,我可以在实际的"模糊"事件之前保存最后一个输入状态(聚焦/未聚焦(
类似的问题在这里。但是触摸屏上的事情要复杂得多。
jQuery:在blur((事件之前触发click((