Widget:Quiz Cloze

Infrastructure for building an eXe-like fill-in-the-blank quiz (see Template:Quiz Cloze) 

$(function { function livenCloze(n) {    var $us, $q,        qn = 'cq' + n;    if ($(this).hasClass('WEquizLive')) return;  // only once    $(this).addClass('WEquizLive');

if ($('#WEquizWidgetStyle').length === 0) { $('head').append(''       + 'ul.weQquestion { margin-left: 1em;}'        + 'ul.weQquestion li { list-style-type: decimal; list-style-image: none; }'        + 'ul li.weQoption { list-style-type: none; list-style-image: none;}'        + 'ul.weQresponse { display: none; }'        + 'ul li.weQresponse { list-style-type: none; list-style-image: none; }'        + '.WEQcorrectionWrap { display: inline-block; vertical-align: top; }'		+ '.WEQcorrection { display: hidden; }'        + ' '); }   $(this).find('ul:first').addClass('weQquestion').wrap('  '); $us = $(this).find('u').each(function(i) {       var j,            s = $(this).text.replace(/^\s*/, ).replace(/\s*$/, ).split(/\s+/),            r = ,            id = qn + '_' + i;        for (j=0; j ';        }        $(this).replaceWith(r);      }    );    $(this).find('.WEquizClozeWord').on('blur', function {      var all = true,          caution = $(this).parents('ul').hasClass('WEquizCaution');      // filled in all the blanks for this question?      $(this).parents('li').find('input').each(function {        if ($.trim($(this).val) === '') {          all = false;        }      });      if (all) {        $(this).parents('li').find('input').each(function {          if (caution && ($.trim($(this).val.toLowerCase).length < $(this).attr("data-qword").length)) { $(this).css('background', '#FFCC00'); } else { if ($.trim($(this).val.toLowerCase) === $(this).attr("data-qword").toLowerCase) { $(this).css('background', 'LightGreen'); $(this).attr('disabled', true).unbind('blur'); } else { $(this).css('background', 'LightPink'); $(this).after(' ' + $(this).attr('data-qword') + ' '); }         }         });        $(this).parents('li').find('.WEQcorrection').show('slow');      }    }); }

$('.WEquizCloze').each(livenCloze); });