quiz.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. (function($){
  2. $.fn.shuffleQuiz = function() {
  3. var allElems = this.get(),
  4. getRandom = function(max) {
  5. return Math.floor(Math.random() * max);
  6. },
  7. shuffled = $.map(allElems, function(){
  8. var random = getRandom(allElems.length),
  9. randEl = $(allElems[random]).clone(true)[0];
  10. allElems.splice(random, 1);
  11. return randEl;
  12. });
  13. this.each(function(i){
  14. $(this).replaceWith($(shuffled[i]));
  15. });
  16. return $(shuffled);
  17. };
  18. })(jQuery);
  19. jQuery( function( $ ) {
  20. $( '.jetpack-quiz' ).each( function() {
  21. var quiz = $(this);
  22. quiz.find( 'div.jetpack-quiz-answer' ).shuffleQuiz();
  23. quiz.find( 'div[data-correct]' ).removeAttr( 'data-correct' ).data( 'correct', 1 );
  24. quiz.find( 'div.jetpack-quiz-answer:last' ).addClass( 'last' );
  25. });
  26. $( 'div.jetpack-quiz' ).on( 'click', 'div.jetpack-quiz-answer', function() {
  27. var trackid, answer = $( this ),
  28. quiz = answer.closest( 'div.jetpack-quiz' );
  29. if ( quiz.data( 'a8ctraining' ) ) {
  30. new Image().src = '//pixel.wp.com/b.gif?v=wpcom-no-pv&x_trainingchaos-' + quiz.data( 'username' ) + '=' + quiz.data( 'a8ctraining' ) + '&rand=' + Math.random();
  31. quiz.data( 'a8ctraining', false );
  32. quiz.data( 'trackid', false );
  33. }
  34. trackid = quiz.data( 'trackid' );
  35. if ( answer.data( 'correct' ) ) {
  36. answer.addClass( 'correct' );
  37. if ( trackid ) {
  38. new Image().src = '//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-' + trackid + '=correct&rand=' + Math.random();
  39. }
  40. } else {
  41. answer.addClass( 'wrong' );
  42. if ( trackid ) {
  43. new Image().src = '//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-' + trackid + '=wrong&rand=' + Math.random();
  44. }
  45. }
  46. // only track the first answer
  47. quiz.data( 'trackid', false );
  48. });
  49. } );