2008-10-17 4 views
2

Так у меня есть некоторые HTML вроде так:JQuery селектор изображения не работает в IE7

<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: Мое решение оказалось случайно случайно. Я изменил код на это из-за ответа RedSquare в:

$('#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;} 

Перейти фигуру.

ответ

0

лучше всего использовать addClass и removeClass в этом сценарии. Легче поддерживать. Можете ли вы вставить свой полный html, чтобы я мог видеть ваш doctype и т. Д.

+0

Так что смена вещей для использования addClass и removeClass устранила проблему. Идите фигуру. – defrex