jquery IE更改/单击事件无法正常工作

时间:2012-05-23 11:13:49

标签: javascript jquery function internet-explorer

这是我的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。

1 个答案:

答案 0 :(得分:1)

要在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;
});