我遇到了一个奇怪的问题 - 访问任何 DOM 元素的 outerHeight
,或者只是在模糊事件中将该元素记录到浏览器的控制台似乎取消了导致模糊的点击事件 - 当一些特殊的符合条件。
这是我正在尝试做的事情:
- 有2个输入,第一个初始可见,另一个隐藏
- 当第一个输入获得焦点时,将显示第二个输入
- 当第二个输入获得焦点时,它保持显示状态
- 当两个输入都失去焦点,并且都没有焦点时,第二个输入将被隐藏
但是,似乎当我只是尝试在我的模糊事件处理程序中执行类似 $('body')[0].outerHeight
的操作时,第二个输入永远不会收到点击或焦点。由于简单地写下来太多了,这里有一个 JSFiddle 的链接来演示这个问题:http://jsfiddle.net/7K2Ha/3/
注意——普通 JS 也是如此
谁能解释为什么会发生这种情况,有什么解决办法吗?
最佳答案
首先,您将焦点/模糊事件绑定(bind)到所有 .jq 输入。然后添加下一个事件处理程序(这意味着所有事件处理程序都将被执行 - 包括第一个,它删除了 has-focus
类)。
检查这个 fiddle ,第 20 行:fiddle here .
$('#input3').unbind('blur').on('blur', //...
关于javascript - (为什么)访问 outerHeight 会取消 click/mouseup/focus 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24864719/