jQuery v 1.7.1
铬 v 18.0.1025.162
我有一个附加到下拉菜单的 jquery click 事件处理程序。在 FF/Safari 中,事件处理程序在单击后立即触发,但我在 Chrome 中观察到奇怪的行为:
- 在下拉菜单中单击
- 请注意,事件处理程序没有触发(而在 FF/Safari 中)
- 当下拉菜单仍然具有焦点时,Tab 到计算机上的另一个应用程序
- 回到 Chrome
- 请注意,事件处理程序已触发
或者,
- 在下拉菜单中单击
- 请注意,事件处理程序尚未触发
- 单击页面的另一部分,使下拉菜单失去焦点
- 请注意,事件处理程序尚未触发
- 跳到计算机上的另一个应用程序
- 回到 Chrome
- 请注意,事件处理程序尚未触发
$("#dropdown-id").detectRealTimeChange(function(){ $("#some-div").html("html 内容"); ); /** * 检测输入的变化而不需要输入失去焦点 */ jQuery.fn.detectRealTimeChange = 函数(回调){ var oldValue = $(this).val(); var didRecordChange = false; $(this).keyup(function(){ var newValue = $(this).val(); 如果(旧值!= 新值){ 如果(!didRecordChange){ 变化计数 = 变化计数 + 1; didRecordChange = true; } } 别的{ 如果(didRecordChange){ 更改计数 = 更改计数 - 1; didRecordChange = false; } } if(typeof 回调 == 'function'){ 回调.call(this); } }); $(this).click(function(){ var newValue = $(this).val(); 如果(旧值!= 新值){ 如果(!didRecordChange){ 变化计数 = 变化计数 + 1; didRecordChange = true; } } 别的{ 如果(didRecordChange){ 更改计数 = 更改计数 - 1; didRecordChange = false; } } if(typeof 回调 == 'function'){ 回调.call(this); } });