我有以下代码在Chrome和Firefox中运行良好,但不是IE8,或者我假设版本低于8。
<script type="text/javascript">
$(function() {
$('div.hidden').hide();
$('input.show:checked').each(function() {
$('#' + $(this).val()).show();
});
$('input.show').click(function() {
$('div.hidden').hide();
$('#' + $(this).val()).show();
});
});
</script>
起初我认为这可能是由:checked
选择器引起的,所以我将代码更改为以下内容:
<script type="text/javascript">
$(function() {
$('div.hidden').hide();
$('input.checked').each(function() {
$('#' + $(this).val()).show();
});
$('input.show').click(function() {
$('div.hidden').hide();
$('#' + $(this).val()).show();
});
$("input[type='checkbox']").click(function() {
$(this).parent().toggleClass("checked", this.checked);
});
});
</script>
没有运气,所以我尝试使用IE9.js然后IE8.js,两者都没有效果。在那之后,我又回到了选择器的鬼混,并试图交换它:
$('input.checked').each(function() {
有了这个:
$('input[checked="checked"]').each(function() {
再次,我空手而归,所以现在我开始认为它可能不是选择器。我在这里搜索过,当然还有谷歌,但还是没能想出任何东西。任何人都可以告诉我为什么我的代码不能在IE8中工作?这也是一个JSFiddle:http://jsfiddle.net/DrydenLong/bP4Uf/
谢谢!
答案 0 :(得分:2)
您的复选框有display: none
。这似乎是它在IE8中不起作用的原因。
一种可能的解决方法是将您的点击事件直接绑定到标签,例如:
$('.show_label').click(function() {
var $input = $(this).find('input');
$('div.hidden').hide();
$('#' + $input.val()).show();
});
答案 1 :(得分:0)
您使用的是哪个版本的jQuery?来自website:
你问过它,你明白了:jQuery 2.0已经到了!正如所承诺的,这个版本留下了旧的Internet Explorer 6,7和8浏览器。
您需要使用版本1.x来获得对IE8及更低版本的支持。