2014-01-20 49 views
1

我有这样的单选按钮:选择CSS3:不被查在IE8中工作(使用ie7.js)

<input class="check" type="radio" id="radio1" name="group"/> 
<label for="radio1">vrai</label> 
<input class="check" type="radio" id="radio2" name="group"/> 
<label for="radio2">faux</label> 
<input class="check" type="radio" id="radio3" name="group"/> 
<label for="radio3">75</label> 
<input class="check" type="radio" id="radio4" name="group"/> 
<label for="radio4">18</label> 

我所选择的类时是:checked,但奇怪的是,即使使用ie7.js它不在ie8中工作。

这里是我的JS:

$(document).ready(function() { 
    $('input:checked').addClass("selected"); 
    $('input').click(function() { 
     $('input:not(:checked)').removeClass("selected"); 
     $(this).addClass("selected"); 
    }); 
}); 
+0

你应该尝试使用onchange事件而不是 –

+0

我应该在哪里使用onchange? – lchabrand

+0

使用'ie7.js',':checked'选择器应该在IE7/8中正常工作,[甚至还有一个测试用例](http://ie7-js.googlecode.com/svn/test/checked.html )类似于你正在做的事情。 –

回答

0

不知道是否有这样做,但我会改写下面,看看它是否改变了一句:

$('input').not('input:checked').removeClass("selected"); 
$(this).addClass("selected"); 
+0

IE8仍然无法工作=) – lchabrand

0

尝试使用change()代替click()

$(document).ready(function() { 
    $('input:checked').addClass("selected"); 
    $('input').change(function() {  // <--- HERE 
     $('input:not(:checked)').removeClass("selected"); 
     $(this).addClass("selected"); 
    }); 
}); 
+0

因为IE8无法识别伪选择器,所以无法正常工作 –

+0

IE8中的更改仍然无效。我知道伪选择器这就是为什么我使用IE7.js(谷歌服务) – lchabrand

0

Hy, 我已经做了纯javascri为您的所有浏览器工作的解决方案。请看看它是否对你有用

  <script type="text/javascript"> 
       function check(selected) 
       { 
        var inputs= document.getElementsByTagName('input'); 
        for(i=0 ; i < inputs.length; ++i) 
        { 

         inputs[i].className=""; 
        } 
        selected.className="selected"; 
       } 
     </script> 

     <input class="check" type="radio" id="radio1" name="group" onclick="check(this);"/> 
     <label for="radio1">vrai</label> 
     <input class="check" type="radio" id="radio2" name="group" onclick="check(this);"/> 
     <label for="radio2">faux</label> 
     <input class="check" type="radio" id="radio3" name="group" onclick="check(this);"/> 
     <label for="radio3">75</label> 
     <input class="check" type="radio" id="radio4" name="group" onclick="check(this);"/> 
     <label for="radio4">18</label> 
+0

嗨,感谢您的解决方案,但它仍然不工作在IE8 = /不知道我怎么能修复它真的。 – lchabrand