IIRC, события IE onchange для флажков ведут себя странно (по сравнению с другими браузерами), и я решил это с помощью встроенного события click.
(обновление: я слишком медленный)
edit: вы можете немного упростить свой код, если хотите ...
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');
});
}