mac*_*ca1 2 jquery bug-tracking dom internet-explorer-6
我已经对此做了大量的研究并发现了一堆报告的问题和解决方案,但普遍的共识似乎是IE6中的所有更改问题都在jQuery 1.4.2中得到修复.
我遇到的问题是jQuery 1.4.2中没有触发更改事件,但它在jQuery 1.3.2中成功触发.这是在IE6中.
我准备为此提交一个错误,但为了我的理智,我想首先在这里发布它,看看是否有一些我不知道的愚蠢.我不明白为什么这样做......
<HTML>
<HEAD>
<TITLE>jQuery 1.4.2 Problem </TITLE>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script>
$(document).ready( function() {
$("#firstBox").change(function() {
alert("CHANGE");
});
// ONLOAD of document autofocus into the first element...
$("form").find(":input:visible:first").focus()
});
</script>
</HEAD>
<BODY>
<form>
<select id="firstBox">
<option value="" selected="selected">--</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
<br><br>
<input size="10" id="secondBox">
</form>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
很简单吧?在页面上加载,给出第一个元素焦点.第一个元素的Onchange,警告.
如果您使用鼠标,它按预期工作.页面加载,焦点在下拉,您更改选项,您获得警报.
问题是如果你使用键盘.页面加载,焦点在下拉列表中,按下向下箭头.选项更改.关闭该字段,没有警报.奇怪的.为了使它更奇怪,如果你回到字段并再次更改它(全部使用键盘),更改事件将在此时标签之后触发.
有任何想法吗?
我决定应用此修复程序,它的工作原理:
$(function() {
$("select").keyup(function () {
$(this).triggerHandler("change")
});
});
Run Code Online (Sandbox Code Playgroud)
原因是我们的应用程序已经使用IE6一段时间,用户用于选择立即触发更改(字段隐藏/显示)的框.这实现了这一点.
谢谢你的建议
| 归档时间: |
|
| 查看次数: |
4549 次 |
| 最近记录: |