initial
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
( function ( $ ) {
|
||||
$.fn.shuffleQuiz = function () {
|
||||
var allElems = this.get(),
|
||||
getRandom = function ( max ) {
|
||||
return Math.floor( Math.random() * max );
|
||||
},
|
||||
shuffled = $.map( allElems, function () {
|
||||
var random = getRandom( allElems.length ),
|
||||
randEl = $( allElems[ random ] ).clone( true )[ 0 ];
|
||||
allElems.splice( random, 1 );
|
||||
return randEl;
|
||||
} );
|
||||
|
||||
this.each( function ( i ) {
|
||||
$( this ).replaceWith( $( shuffled[ i ] ) );
|
||||
} );
|
||||
|
||||
return $( shuffled );
|
||||
};
|
||||
} )( jQuery );
|
||||
|
||||
jQuery( function ( $ ) {
|
||||
$( '.jetpack-quiz' ).each( function () {
|
||||
var quiz = $( this );
|
||||
quiz.find( 'div.jetpack-quiz-answer' ).shuffleQuiz();
|
||||
quiz.find( 'div[data-correct]' ).removeAttr( 'data-correct' ).data( 'correct', 1 );
|
||||
quiz.find( 'div.jetpack-quiz-answer:last' ).addClass( 'last' );
|
||||
} );
|
||||
|
||||
$( 'div.jetpack-quiz' ).on( 'click', 'div.jetpack-quiz-answer', function () {
|
||||
var trackid,
|
||||
answer = $( this ),
|
||||
quiz = answer.closest( 'div.jetpack-quiz' );
|
||||
|
||||
if ( quiz.data( 'a8ctraining' ) ) {
|
||||
new Image().src =
|
||||
'//pixel.wp.com/b.gif?v=wpcom-no-pv&x_trainingchaos-' +
|
||||
quiz.data( 'username' ) +
|
||||
'=' +
|
||||
quiz.data( 'a8ctraining' ) +
|
||||
'&rand=' +
|
||||
Math.random();
|
||||
quiz.data( 'a8ctraining', false );
|
||||
quiz.data( 'trackid', false );
|
||||
}
|
||||
|
||||
trackid = quiz.data( 'trackid' );
|
||||
if ( answer.data( 'correct' ) ) {
|
||||
answer.addClass( 'correct' );
|
||||
if ( trackid ) {
|
||||
new Image().src =
|
||||
'//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-' + trackid + '=correct&rand=' + Math.random();
|
||||
}
|
||||
} else {
|
||||
answer.addClass( 'wrong' );
|
||||
if ( trackid ) {
|
||||
new Image().src =
|
||||
'//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-' + trackid + '=wrong&rand=' + Math.random();
|
||||
}
|
||||
}
|
||||
// only track the first answer
|
||||
quiz.data( 'trackid', false );
|
||||
} );
|
||||
} );
|
||||
|
||||
document.querySelectorAll( '.jetpack-quiz-wrapper' ).forEach( function ( quiz ) {
|
||||
quiz.childNodes.forEach( function ( element, number ) {
|
||||
element.style.display = 'none';
|
||||
element.setAttribute( 'quiz-number', number );
|
||||
element.querySelector( '.jetpack-quiz-count' ).innerHTML =
|
||||
number + 1 + '/' + quiz.childElementCount;
|
||||
} );
|
||||
|
||||
quiz.childNodes[ 0 ].style.display = 'block';
|
||||
} );
|
||||
|
||||
document.querySelectorAll( '.jetpack-quiz-option-button' ).forEach( function ( element ) {
|
||||
element.addEventListener( 'click', function () {
|
||||
var currentQuiz = element.parentElement.parentElement;
|
||||
currentQuiz.style.display = 'none';
|
||||
var switchNumber = element.getAttribute( 'data-quiz-option' ) === 'next' ? 1 : -1;
|
||||
var newQuiz =
|
||||
currentQuiz.parentElement.childNodes[
|
||||
parseInt( currentQuiz.getAttribute( 'quiz-number' ) ) + switchNumber
|
||||
];
|
||||
newQuiz.style.display = 'block';
|
||||
var newQuizQuestionEl = newQuiz.querySelector( '.jetpack-quiz-question' );
|
||||
if ( newQuizQuestionEl ) {
|
||||
newQuizQuestionEl.focus();
|
||||
}
|
||||
} );
|
||||
} );
|
||||
Reference in New Issue
Block a user