IE6下appendChild的一个小问题。

作者: nick 分类: css, html, jquery 发布时间: 2010-06-12 11:04 ė 62条评论

项目中遇到一个小问题,但严重影响了用户体验。

我们先看一个例子:

http://www.cssrain.cn/demo/dialog_jQuery_ui/modal_looseState.html

这是我们项目中采用的jquery ui dialog 做的页面,我把他提取出来,简化一下。

例子中,点击add按钮弹出遮罩层,层中有2个文本框和2个多选框。

现在我们开始测试这个问题:

首先,我们在文本框上输入文本,把多选框也选中。然后点击窗口关闭。

接下来,我们再点击add按钮,重新打开层。

在ie7下,发现刚才所填写的,所选中的一切正常。

在ie6下,文本框的内容还存在,但多选框的选中已经丢失。

接下来为了找出原因,我看了下jquery的源码,然后发现jquery使用了appendChild这个方法,

于是我写了个简单的例子来验证是不是它引起的:

http://www.cssrain.cn/demo/dialog_jQuery_ui/b.html

经验证,果真如此,ie6下多选框选中状态在点击appendChild后,丢失了。

暂时解决办法是:

在多选框上添加:onclick=”this.defaultChecked=(!this.defaultChecked)”

修改后的例子:

http://www.cssrain.cn/demo/dialog_jQuery_ui/modal.html

本文出自 传播、沟通、分享,转载时请注明出处及相应链接。

本文永久链接: https://www.nickdd.cn/?p=738

发表评论

您的电子邮箱地址不会被公开。

Ɣ回顶部