我希望创建一个网格,允许用户选择他们想要的单元格,这将选择一个单选按钮。理想情况下,我能够隐藏单选按钮并在活动单元格中添加一个类,以便用户知道他们选择了哪一个。我现在遇到的问题是,当用户点击单元格时选择了单选按钮,只有在单击实际的单选按钮时才会添加该类。此外,单击另一个框时,它并不总是删除该类。
这是用于添加类的脚本:
$(document).ready(function() {
$("td input").change(function () {
var $this = $(this);
var td = $this.parent();
td.siblings().filter(function() {
return !!$(this).find('input[name="'+$this.attr('name')+'"]:radio').length;
}).removeClass('activecell');
if(this.checked) {
td.addClass('activecell');
}
});
});
该页面的演示 http://jsfiddle.net/VU6dN/
任何帮助都将不胜感激。
答案 0 :(得分:1)
将单击处理程序放在单元格而不是单选按钮上,单击单元格时选择单选按钮,并将CSS类指定给隐藏它的单选按钮。像下面这样的东西。此外,这是一个更新的fiddle that works。
$('td').click(function() {
var $cell = $(this);
$('td.activecell').removeClass('activecell');
$cell.addClass('activecell');
$cell.children('input').attr('checked', 'checked');
});
答案 1 :(得分:1)
在HTML中删除那些讨厌的onclick
处理程序并改为使用.trigger('click')
:
$('td').click(function () {
$(this).find('input').trigger('click');
});