j查询IE更改/单击事件不起作用



这是我的HTML:

<div class="sss">
    <label class="label_radio" for="radio-01">
        <input name="vtip" id="radio-01" value="50" type="radio" />
        <img src="http://www.tui-travelcenter.ro/layouts/innobyte/images/radio_50.jpg" width="199" height="241" style="display:block">
    </label>
</div>
<div class="ddd">
    <label class="label_radio1" for="radio-02">
        <input name="vtip" id="radio-02" value="100" type="radio" />
        <img src="http://www.tui-travelcenter.ro/layouts/innobyte/images/radio_100.jpg" width="199" height="241" style="display:block">
    </label>
 </div>
 <div class="clear"></div>

这是我的javascript:

$(document).ready(function () {
    $('#radio-01').change(function(){ 
        $(".label_radio").css({background: "#fff"});                           
        $(".label_radio1").css({background: "#fff"});                                   
        if($(this).is(":checked")) {                                                  
             $(".label_radio").css({background: "#000"});       
        } else {
         $(".label_radio").css({background: "#f00"}) ;          
        }
     });
     $('#radio-02').change(function(){                                 
        $(".label_radio").css({background: "#fff"});                                                          
        $(".label_radio1").css({background: "#fff"}); 
        if($(this).is(":checked")) $(".label_radio1").css({background: "#000"}); 
        else $(".label_radio1").css({background: "#fff"}) ; 
     });
 });

我有两个单选按钮,它们有一个自定义图像。单击时,它们会更改其背景,因此您可以看到它已被选中。(这里是现场直播:tui-travelcenter.ro/concurs_vouchere.php - 2张照片。这在Firefox,Chrome中工作得很好,但在IE中则不行。

若要在 IE 中执行此操作,请在代码中使用 $(".label_radio1").css({'background-color': "#fff"}); 而不是$(".label_radio1").css({background: "#fff"});

在你打电话给.css(..)的所有地方都做同样的事情


编辑

在 IE 中,单击事件不会从 img 向上传播到标签,因此它会影响无线电(它是其标签)并触发无线电的更改事件。将此代码添加到 JS 中以强制事件传播。

$('label img').click(function() {
    $(this).prev('input').attr('checked', true).change();
    return true;
});

最新更新