0

我的 jQuery Uniformed 单选按钮和复选框在 IE 9 和 8 中都有问题。

出于某种原因,它们似乎堆叠在彼此之上或其他东西之上。

我没有要显示的代码,因为没有什么超出规范的实现,但是您可以在我的实时沙箱上看到一个示例:

http://sandbox.tsdapps.com/account/register

如果您在 IE 中查看它,int Newsletter 部分有两个空白单选按钮。其中之一已被选中,但似乎在演示文稿中的空白下方。条款复选框也是如此,如果您选中它,您可以看到底层元素被选中,因为复选标记的尖端重叠并且在框的右上角可见。

我到处搜索试图自己解决这个问题,但我找不到任何东西。github 问题门户网站有大约 100 个未解决的问题,而且似乎已经死了,所以我来了。

任何帮助将不胜感激。

谢谢。

-文斯

4

2 回答 2

0

该代码在 IE8 中不能很好地工作,因为 IE8(以及据我所知的 IE9)不支持伪 css 类:after:before但是您可以通过添加特定于 IE 且仅在 IE 浏览器中加载的 css 和 js 文件并添加一些额外代码来实现所需的行为。

首先简单地对用户隐藏checkbox,以避免复选框位于统一跨度之上。

#some_holder_dom_node span>input[type='checkbox'] {
  visibility: hidden;
}

一旦复选框被隐藏,我们需要手动处理它的选中/取消选中操作并使用其他元素触发事件,例如:

(function(){
  $(document).on('click', '#some_holder_dom_node div.checker>span', function(){
    $(this).find('input:checkbox').trigger('click');
  });
}());

我使用了简单的 JS 和 CSS,但您可以使用 scss 或 sass 来节省一些 css 规则的输入,以及 CoffeeScript 或其他处理 JS 的东西。

于 2014-05-12T11:42:24.647 回答
0

尝试获取您的样式和脚本文件,并使用默认的统一设置:

http://jsfiddle.net/AKfN8/2/

哪个在 IE 中运行良好...

所以似乎是 Modernizer 打破了它,这就是我添加它时发生的事情:

http://jsfiddle.net/AKfN8/11/

所以我的猜测是您正在使用可能会破坏 Uniform 的 Modernizr HTML5 输入标签扩展。您可以尝试删除modernizr 来测试它吗?:)

如果是,您可能希望在没有输入扩展的情况下进行构建。

于 2012-04-03T22:59:47.140 回答