【问题标题】:JQuery and RadioButtons questionJQuery 和 RadioButtons 问题
【发布时间】:2009-12-29 18:18:08
【问题描述】:

我有一个包含单选按钮(即 3x3 网格)的表格,当我选择其中一个包含单选按钮来更改颜色时,我想要。按照这个example我做了这个

<table class="table-name">
<tr>
    <td>
        <span>Some text</span>
        <input type="radio" name="some-name" />
    </td>
    <td>
        <span>Some text</span>
        <input type="radio" name="some-name" />
    </td></tr>
</table>

和javascript

$(':radio').change(function() {           
    $('.color-1').removeClass('color-1');       
    var $td = $(this).parent('td');
    if (this.checked) {               
        $td.addClass('color-1');   
    } else {                          
        $td.removeClass('color-1');
    }
});

这在 Firefox 上运行良好。但在 Internet Explorer 上,它会为先前选择的颜色着色 因此,如果我选择 1,1,它会保持白色,但当我选择 1,2 时,1,1 会变成蓝色,依此类推。

有什么想法吗?

【问题讨论】:

  • 对于.click 版本,我认为您不需要“this.checked”检查,因为触发事件的元素总是被检查,对吧?

标签: jquery html css radio-button


【解决方案1】:

IE(所有版本)在checkboxesradio buttons 上对onChange 事件的实现确实存在错误。 如果您想提供可靠的跨浏览器行为,则必须使用 onClick 事件。

请参阅this link 了解更多信息。

【讨论】:

    【解决方案2】:

    显然这可以通过使用来解决

    $(':radio').click(function() ...
    

    而不是 .change。至少在与 ie 的兼容性方面。

    任何人都知道为什么更改会失败或者很可能是我做错了什么?

    【讨论】:

      猜你喜欢
      • 2012-11-26
      • 1970-01-01
      • 2012-06-10
      • 2014-01-17
      • 2019-03-28
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多