Okay, this should work for 2.05 - 2.50.
Code:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
// Identify this question
var thisQuestion = $('#question{QID}');
// Assign row-specific classes
$('tr.subquestions-list:not(:last) td.question-item', thisQuestion).addClass('non-exclusive');
$('tr.subquestions-list:last td.question-item', thisQuestion).addClass('exclusive');
// Assign column-specific classes
$('tr.subquestions-list', thisQuestion).each(function(i){
$('> *', this).each(function(i){
$(this).addClass('column-'+i+'');
$(this).attr('data-column', i);
});
});
// Listener on the checkboxes
$('input[type="checkbox"]', thisQuestion).on('change', function(e) {
if($(this).is(':checked')) {
var columnNum = $(this).closest('td').attr('data-column');
if($(this).closest('td').hasClass('exclusive')) {
$('td[data-column="'+columnNum+'"].non-exclusive input[type="checkbox"]', thisQuestion).prop('checked', false);
$('td[data-column="'+columnNum+'"].non-exclusive input:hidden', thisQuestion).attr('value', '');
}
else {
$('td[data-column="'+columnNum+'"].exclusive input[type="checkbox"]', thisQuestion).prop('checked', false);
$('td[data-column="'+columnNum+'"].exclusive input:hidden', thisQuestion).attr('value', '');
}
// Check relevance
$('td[data-column="'+columnNum+'"] input[id^="answer"]', thisQuestion).each(function(i) {
fixnum_checkconditions($(this).attr('value'), $(this).attr('id').replace(/answer/, ''), 'hidden');
});
}
});
});
</script>