如何制作2路/ 2维单选按钮互斥锁(排他性)

时间:2015-11-04 19:23:59

标签: jquery radio-button 2d mutex

我一直在寻找一种方法来制作一个单选按钮网格,其中#34;互相排斥"它们的特征在两个方向上起作用。我们的想法是只允许选择特定行中的所有按钮 - 但也只允许选择特定列中的所有按钮中的一个。

我实际上已经回答了我自己的问题,但我想我会在这里发布,因为我自己没有找到问题,而且看起来它通常很有用。

1 个答案:

答案 0 :(得分:1)

这是fiddle演示我的解决方案。

它的基本要点是在一个方向上使用普通的单选按钮技术,例如水平,并使用安排选择器匹配另一个方向的整个列 - 我使用了一个CSS类。

然后,点击后,取消选中整个列,然后再选中this

HTML:

<input class=one type=radio name=foo value=1/>
<input class=two type=radio name=foo value=2/>
<input class=three type=radio name=foo value=3/>
<br/>
<input class=one type=radio name=bar value=1/>
<input class=two type=radio name=bar value=2/>
<input class=three type=radio name=bar value=3/>
<br/>
<input class=one type=radio name=car value=1/>
<input class=two type=radio name=car value=2/>
<input class=three type=radio name=car value=3/>
<br/>

jquery的:

$('input').on 'click', ->
    ele=$(this)
    myClass=ele.attr('class')
    $('input.'+myClass).attr('checked',false)
    ele.attr('checked',true)