首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >change event IE 7-8内的检查值与其他值

change event IE 7-8内的检查值与其他值
EN

Stack Overflow用户
提问于 2012-12-12 06:46:16
回答 1查看 102关注 0票数 1

有人知道为什么这段代码在FF,Chrome和IE9中打印为真,在IE 7-8中打印为假吗?当然还有如何让它保持一致。

代码语言:javascript
运行
复制
$("#cb1").on("change", function(e) {
    $("#value").text(e.target.checked);
});

$("#cb1").trigger("click");

HTML是

代码语言:javascript
运行
复制
<input type="checkbox" id="cb1" />
<div id="value"></div>

我还准备了一个jsfiddle

EN

回答 1

Stack Overflow用户

发布于 2012-12-12 07:57:50

它在IE中返回false的原因是由于事件的时间/顺序。

在IE中,当change事件被触发时,checked属性尚未设置。

一旦该事件竞争,但它已被设置,并且.checked将返回true。

我不认为这是实现这一点的最好方法,但回答你的问题……

根据您现有的代码,包装实际设置的setTimeout调用中的文本将延迟其执行。

这意味着当代码执行此更改时,将设置checked属性,并将看到“正确”/所需的行为。

我已经在这里更新了你的小提琴http://jsfiddle.net/WkGUr/16/

代码语言:javascript
运行
复制
$("#cb1").on("change", function(e) {
    setTimeout(function() {
        $("#value").text(e.target.checked);
    }, 0);
});

$("#cb1").trigger("click");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13829771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档