jquery图像选择器在IE7中不起作用

Posted

技术标签:

【中文标题】jquery图像选择器在IE7中不起作用【英文标题】:jquery image selector not working in IE7 【发布时间】:2010-09-17 16:53:40 【问题描述】:

所以我有一些像这样的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');
);

地点:

#avatar_choices img.selectedborder:2px solid #39c;

去看看。

【问题讨论】:

【参考方案1】:

最好在这种情况下使用 addClass 和 removeClass。更容易维护。 您可以粘贴您的完整 html,以便我可以查看您的文档类型等

【讨论】:

因此改变事物以使用 addClass 和 removeClass 解决了问题。去图吧。

以上是关于jquery图像选择器在IE7中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 jQuery :not() 选择器在 CSS 中不起作用?

为啥我的 jQuery :not() 选择器在 CSS 中不起作用?

为啥 jQuery UI 日期选择器在 jQuery 对话框模式中不起作用?

jQuery $(this) 选择器在函数中不起作用

jQuery 属性选择器在 Internet Explorer 中不起作用

JQuery 属性包含选择器在 WebKit 中不起作用