我最近问了另一个关于切换课程的问题。最初我认为有一个解决方案,但看起来我仍然有一些问题。我正在尝试建立一个小型网站,显示某些项目的失败和成功。这是我正在尝试构建的示例:http: //jsfiddle.net/zrYLh/4/
站点应该如何工作: 如果我选中计算机 A 的复选框,计算机 A、B、C 和 D 应该会变为红色。如果我随后选中计算机 B 的复选框,则不会发生任何变化。如果我随后取消选中计算机 B 的复选框,所有项目仍应保持红色,因为计算机 A 仍处于选中状态,并且它本身应导致 A、B、C 和 D 为红色。相同的逻辑应该适用于任何检查组合。
目前,代码强制某些项目切换回绿色,即使另一个项目要求它们保持红色。例如,当 A 和 B 被选中,然后 B 被取消选中时,它会强制 A 和 C 变为绿色。
这是我现在的脚本:
$('#computerA').click(function(){
var state = this.checked;
$('#computerA2, #computerB2, #computerC2, #computerD2').toggleClass('green', !state).toggleClass('failure', state);
})
$('#computerB, #computerC, #computerD').click(function(){
var state = this.checked || $('#computerA').is(':checked');
$(this).prev().toggleClass('green', !state).toggleClass('failure', state);
})
$('#computerB').click(function(){
var state = this.checked;
$('#computerA2, #computerC2').toggleClass('green', !state).toggleClass('failure', state);
})
$('#computerA, #computerC').click(function(){
var state = this.checked || $('#computerB').is(':checked');
$(this).prev().toggleClass('green', !state).toggleClass('failure', state);
})
任何帮助将不胜感激 - 谢谢!