Итак, у меня есть html примерно так:
<div id="avatar_choices">
<label for="id_choice_0">
<input id="id_choice_0" type="radio" name="choice" value="7" />
<img src="someimage.jpg" />
</label>
<label for="id_choice_1">
<input id="id_choice_1" type="radio" name="choice" value="8" />
<img src="someimage2.jpg" />
</label>
</div>
И какой-то скрипт:
$('#avatar_choices input').hide();
$('#avatar_choices img').click(function(){
$('#avatar_choices img').css('border', '2px solid #efefef');
$(this).css('border', '2px solid #39c');
$(this).siblings('input').attr('checked', 'checked');
});
Цель состоит в том, чтобы позволить пользователю щелкнуть по опциям изображения, выделив один из них цветом рамки.
Это отлично работает в FF. По какой-то причине в IE, когда я нажимаю на изображение, нажимаю другое изображение, затем пытаюсь щелкнуть первое, граница не изменится (хотя она будет выделена).
EDIT:
Мое решение закончилось тем, что произошло наполовину случайно. Я изменил код на это из-за ответа Красного квадрата:
$('#avatar_choices input').hide();
$('#avatar_choices img').click(function(){
$('#avatar_choices img').removeClass('selected');
$(this).addClass('selected');
$(this).siblings('input').attr('checked', 'checked');
});
где:
#avatar_choices img.selected{border:2px solid #39c;}
Иди на цифру.