IE7でjqueryイメージセレクターが機能しない
-
03-07-2019 - |
質問
だから次のような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で何らかの理由で画像をクリックし、別の画像をクリックしてから、最初の画像をクリックしても、境界線は変わりません(選択されますが)。
編集: 私の解決策は偶然に半分になってしまいました。 redsquareの回答により、コードをこれに変更しました。
$('#avatar_choices input').hide();
$('#avatar_choices img').click(function(){
$('#avatar_choices img').removeClass('selected');
$(this).addClass('selected');
$(this).siblings('input').attr('checked', 'checked');
});
where:
#avatar_choices img.selected{border:2px solid #39c;}
図を作成します。
解決
このシナリオでは、addClassとremoveClassを使用するのが最適です。メンテナンスが簡単。 完全なhtmlを貼り付けて、Doctypeなどを表示できますか
所属していません StackOverflow