简体   繁体   English

单击复选框以展开div,在IE7中不起作用

[英]Clicking checkbox to expand div, doesn't work in IE7

The following code works fine in FF, but doesn't in IE7 - when clicking the checkboxes in IE the divs doesn't toggle. 以下代码在FF中可以正常运行,但在IE7中则不能运行-单击IE中的复选框时,div不会切换。

How do I troubleshoot these kind of issues - does anyone have an idea on how to go about this? 我该如何解决这类问题-有人对如何解决这个问题有想法吗?

// hide divs
$('.product-optional-toggle1').css({ display: 'none'}); 
$('.product-optional-toggle2').css({ display: 'none'}); 
$('.product-optional-toggle3').css({ display: 'none'}); 

// toggle divs when checkbox is checked
$('.product-optional-checkbox1').change(function () {
    if($(this).attr("checked") === "true") {
        $('.product-optional-toggle1').toggle('fast');  
        return;
    }
    $('.product-optional-toggle1').toggle('fast');  

});

$('.product-optional-checkbox2').change(function () {
    if($(this).attr("checked") === "true") {
        $('.product-optional-toggle2').toggle('fast');  
        return;
    }
    $('.product-optional-toggle2').toggle('fast');  

});

$('.product-optional-checkbox3').change(function () {
    if($(this).attr("checked") === "true") {
        $('.product-optional-toggle3').toggle('fast');  
        return;
    }
    $('.product-optional-toggle3').toggle('fast');  

});

您应该使用click事件来侦听IE中复选框的检查。

IIRC, IE onchange events for checkboxes behave oddly (compared to other browsers) and I solved it by using the click event insted. IIRC,复选框的IE onchange事件行为异常(与其他浏览器相比),我通过使用单击事件insted解决了它。

(update: I'm too slow) (更新:我太慢了)

edit: you can simplify your code a bit too if you want... 编辑:如果需要,您也可以简化代码。

for( var i = 1; i < 3; ++i ){
    $('.product-optional-toggle' + i).css({ display: 'none'}); 

    // toggle divs when checkbox is checked
    $('.product-optional-checkbox' + i).change(function () {
        if($(this).attr("checked") === "true") {
            $('.product-optional-toggle' + i).toggle('fast');  
            return;
        }
        $('.product-optional-toggle' + i).toggle('fast');      
    });
}

This should be browser neutral: 这应该与浏览器无关:

// toggle divs when checkbox is checked
$('.product-optional-checkbox1').click(function () {
    $('.product-optional-toggle1').toggle('fast');  
});

$('.product-optional-checkbox2').click(function () {
    $('.product-optional-toggle2').toggle('fast');  
});

$('.product-optional-checkbox3').click(function () {
    $('.product-optional-toggle3').toggle('fast');  
});

// hide divs
$('.product-optional-toggle1').hide(); 
$('.product-optional-toggle2').hide(); 
$('.product-optional-toggle3').hide(); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM