jquery IE8 - 一起使用 live('blur', function) 和 live('change',function)
好吧,我在使用 IE8 和 jQuery 时遇到了一个奇怪的问题。请参阅下面的代码:
<!DOCTYPE html>
<html dir="ltr">
<head>
</head>
<body>
<input>
<script type="text/javascript" language="javascript" src="jquery.tools.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('input').live('blur',function(){alert('blur');});
$('input').live('change',function(){alert('change');});
});
</script>
</html>
按照原样的代码,我无法在编辑输入字段后触发更改事件处理程序。但是,如果我注释掉模糊事件处理程序,则更改将触发。
IE8为什么要这样做呢?我应该怎样做才能使模糊和更改在所有浏览器上同时工作?
Ok, I have a weird problem with IE8 and jQuery. See the code below:
<!DOCTYPE html>
<html dir="ltr">
<head>
</head>
<body>
<input>
<script type="text/javascript" language="javascript" src="jquery.tools.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('input').live('blur',function(){alert('blur');});
$('input').live('change',function(){alert('change');});
});
</script>
</html>
With the code as is, I can't get the on change event handler to fire after editing the input field. However, if I comment out the blur event handler, then on change will fire.
Why does IE8 do this? What should I do to make both on blur and on change work simultaneously across all browsers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
jQuery 工具 包括旧版 jQuery v1.4.2。这似乎是 IE8 中的一个错误,会破坏您的预期功能。升级到 v1.6.1,然后发生两个事件IE8 中火了。我测试了旧版本的 jQuery,任何损坏的地方都已在 v1.4.3 中修复,因此如果您出于某种原因无法进行主要版本升级,那么希望次要版本升级就可以了。
jQuery tools includes the older v1.4.2 of jQuery. This seems to have a bug in IE8 that breaks your intended functionality. Upgrading to v1.6.1, then both events fire in IE8. I tested the older versions of jQuery and whatever was broken was fixed in v1.4.3 so if you cannot do a major version upgrade for whatever reason, then hopefully a minor version upgrade will be OK.