IT技术博客大学习 共学习 共进步

IE6下appendChild的一个小问题。

前端技术 2010-06-12 17:46:10 浏览 3,223 次

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

    我们先看一个例子:

    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

建议继续学习

  1. 解决IE6从Nginx服务器下载图片不Cache的Bug (阅读 8,221)
  2. IE6下position:absolute相邻元素margin-top失效的bug (阅读 3,923)
  3. 让IE6支持min-width (阅读 3,682)
  4. IE6中a标签location.href失效解决方法 (阅读 3,481)
  5. IE6浮动引起的一些BUG (阅读 3,041)
  6. IE6下经典的请求abort问题 (阅读 2,420)
  7. 这到底是谁之错? (阅读 2,322)