مدیاویکی:Common.js: تفاوت میان نسخهها
پرش به ناوبری
پرش به جستجو
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش برچسب: واگردانی دستی |
||
| (۳ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد) | |||
| خط ۲: | خط ۲: | ||
/* | /* | ||
* ===================================================== | |||
* ویکیداد — تستهای تعاملی | |||
* ===================================================== | |||
*/ | |||
/* | |||
* ----------------------------------------------------- | |||
* تبدیل گزینههای لیست به گزینههای قابل کلیک | * تبدیل گزینههای لیست به گزینههای قابل کلیک | ||
* ----------------------------------------------------- | |||
*/ | */ | ||
$( '.wd-test-options' ).each( function () { | $( '.wd-test-options' ).each( function () { | ||
| خط ۹: | خط ۱۹: | ||
container.find( 'li' ).each( function () { | container.find( 'li' ).each( function () { | ||
$( this ).addClass( 'wd-test-option' ); | $( this ).addClass( 'wd-test-option' ); | ||
} ); | } ); | ||
| خط ۱۶: | خط ۲۸: | ||
/* | /* | ||
* ----------------------------------------------------- | |||
* انتخاب گزینه | * انتخاب گزینه | ||
* ----------------------------------------------------- | |||
*/ | */ | ||
$( document ).on( 'click', '.wd-test-option', function () { | $( document ).on( 'click', '.wd-test-option', function () { | ||
var option = $( this ); | var option = $( this ); | ||
var box = option.closest( '.wd-test' ); | var box = option.closest( '.wd-test' ); | ||
/* | /* | ||
* اگر | * اگر پاسخ صحیح قبلاً انتخاب شده، | ||
* | * تست تمام شده است. | ||
*/ | */ | ||
if ( box.hasClass( 'wd-test-finished' ) ) { | if ( box.hasClass( 'wd-test-finished' ) ) { | ||
return; | return; | ||
} | } | ||
var | /* | ||
var | * دریافت پاسخ صحیح | ||
var | */ | ||
var answer = $.trim( | |||
box.attr( 'data-answer' ) | |||
); | |||
/* | |||
* متن گزینه انتخابشده | |||
*/ | |||
var selectedText = $.trim( | |||
option.text() | |||
); | |||
/* | |||
* عناصر نتیجه | |||
*/ | |||
var result = box.find( | |||
'.wd-test-result' | |||
); | |||
var message = box.find( | |||
'.wd-test-result-message' | |||
); | |||
var | var answerBox = box.find( | ||
'.wd-test-answer' | |||
); | |||
/* | /* | ||
* تشخیص گزینه | * تشخیص حرف گزینه | ||
*/ | */ | ||
if ( selectedText.indexOf( 'الف' ) === 0 ) { | |||
var selectedLetter = ''; | |||
if ( | |||
selectedText.indexOf( 'الف' ) === 0 | |||
) { | |||
selectedLetter = 'الف'; | selectedLetter = 'الف'; | ||
} else if ( selectedText.indexOf( 'ب' ) === 0 ) { | } else if ( | ||
selectedText.indexOf( 'ب' ) === 0 | |||
) { | |||
selectedLetter = 'ب'; | selectedLetter = 'ب'; | ||
} else if ( selectedText.indexOf( 'ج' ) === 0 ) { | } else if ( | ||
selectedText.indexOf( 'ج' ) === 0 | |||
) { | |||
selectedLetter = 'ج'; | selectedLetter = 'ج'; | ||
} else if ( selectedText.indexOf( 'د' ) === 0 ) { | } else if ( | ||
selectedText.indexOf( 'د' ) === 0 | |||
) { | |||
selectedLetter = 'د'; | selectedLetter = 'د'; | ||
| خط ۶۴: | خط ۱۲۰: | ||
/* | /* | ||
* تبدیل | * تبدیل: | ||
* | |||
* گزینه ب | |||
* | |||
* به: | |||
* | |||
* ب | |||
*/ | */ | ||
var correctLetter = answer | var correctLetter = answer | ||
.replace( 'گزینه', '' ) | .replace( 'گزینه', '' ) | ||
| خط ۷۳: | خط ۱۳۶: | ||
/* | /* | ||
* | * ثبت انتخاب کاربر | ||
*/ | |||
option.addClass( | |||
'wd-selected' | |||
); | |||
/* | |||
* نمایش پیام نتیجه | |||
*/ | */ | ||
result.show(); | result.show(); | ||
| خط ۸۱: | خط ۱۵۲: | ||
/* | /* | ||
* ================================================= | |||
* پاسخ صحیح | * پاسخ صحیح | ||
* ================================================= | |||
*/ | */ | ||
option.addClass( 'wd-correct' ); | if ( | ||
selectedLetter === correctLetter | |||
) { | |||
option.addClass( | |||
'wd-correct' | |||
); | |||
message | message | ||
.removeClass( 'wd-result-wrong' ) | .removeClass( | ||
.addClass( 'wd-result-correct' ) | 'wd-result-wrong' | ||
.text( '✓ پاسخ شما صحیح است.' ); | ) | ||
.addClass( | |||
'wd-result-correct' | |||
) | |||
.text( | |||
'✓ پاسخ شما صحیح است.' | |||
); | |||
/* | |||
* نمایش پاسخ و تحلیل | |||
*/ | |||
answerBox | answerBox | ||
.stop( true, true ) | .stop( | ||
.slideDown( 250 ); | true, | ||
true | |||
) | |||
.slideDown( | |||
250 | |||
); | |||
/* | |||
* پایان تست | |||
*/ | |||
box.addClass( 'wd-test-finished' ); | box.addClass( | ||
'wd-test-finished' | |||
); | |||
} | } | ||
| خط ۱۰۲: | خط ۲۰۴: | ||
/* | /* | ||
* ================================================= | |||
* پاسخ غلط | * پاسخ غلط | ||
* | * ================================================= | ||
*/ | */ | ||
else { | else { | ||
option.addClass( 'wd-wrong' ); | option.addClass( | ||
'wd-wrong' | |||
); | |||
message | message | ||
.removeClass( 'wd-result-correct' ) | .removeClass( | ||
.addClass( 'wd-result-wrong' ) | 'wd-result-correct' | ||
.text( '✕ پاسخ شما نادرست است.' ); | ) | ||
.addClass( | |||
'wd-result-wrong' | |||
) | |||
.text( | |||
'✕ پاسخ شما نادرست است.' | |||
); | |||
/* | |||
* عمداً پاسخ صحیح را نمایش نمیدهیم. | |||
* | |||
* کاربر میتواند گزینه دیگری را انتخاب کند. | |||
*/ | |||
} | } | ||
| خط ۱۲۰: | خط ۲۳۸: | ||
}); | }); | ||
}); | } ); | ||
نسخهٔ کنونی تا ۱۰ سپتامبر ۲۰۲۶، ساعت ۱۵:۰۶
$( function () {
/*
* =====================================================
* ویکیداد — تستهای تعاملی
* =====================================================
*/
/*
* -----------------------------------------------------
* تبدیل گزینههای لیست به گزینههای قابل کلیک
* -----------------------------------------------------
*/
$( '.wd-test-options' ).each( function () {
var container = $( this );
container.find( 'li' ).each( function () {
$( this ).addClass( 'wd-test-option' );
} );
});
/*
* -----------------------------------------------------
* انتخاب گزینه
* -----------------------------------------------------
*/
$( document ).on( 'click', '.wd-test-option', function () {
var option = $( this );
var box = option.closest( '.wd-test' );
/*
* اگر پاسخ صحیح قبلاً انتخاب شده،
* تست تمام شده است.
*/
if ( box.hasClass( 'wd-test-finished' ) ) {
return;
}
/*
* دریافت پاسخ صحیح
*/
var answer = $.trim(
box.attr( 'data-answer' )
);
/*
* متن گزینه انتخابشده
*/
var selectedText = $.trim(
option.text()
);
/*
* عناصر نتیجه
*/
var result = box.find(
'.wd-test-result'
);
var message = box.find(
'.wd-test-result-message'
);
var answerBox = box.find(
'.wd-test-answer'
);
/*
* تشخیص حرف گزینه
*/
var selectedLetter = '';
if (
selectedText.indexOf( 'الف' ) === 0
) {
selectedLetter = 'الف';
} else if (
selectedText.indexOf( 'ب' ) === 0
) {
selectedLetter = 'ب';
} else if (
selectedText.indexOf( 'ج' ) === 0
) {
selectedLetter = 'ج';
} else if (
selectedText.indexOf( 'د' ) === 0
) {
selectedLetter = 'د';
}
/*
* تبدیل:
*
* گزینه ب
*
* به:
*
* ب
*/
var correctLetter = answer
.replace( 'گزینه', '' )
.replace( ':', '' )
.trim();
/*
* ثبت انتخاب کاربر
*/
option.addClass(
'wd-selected'
);
/*
* نمایش پیام نتیجه
*/
result.show();
/*
* =================================================
* پاسخ صحیح
* =================================================
*/
if (
selectedLetter === correctLetter
) {
option.addClass(
'wd-correct'
);
message
.removeClass(
'wd-result-wrong'
)
.addClass(
'wd-result-correct'
)
.text(
'✓ پاسخ شما صحیح است.'
);
/*
* نمایش پاسخ و تحلیل
*/
answerBox
.stop(
true,
true
)
.slideDown(
250
);
/*
* پایان تست
*/
box.addClass(
'wd-test-finished'
);
}
/*
* =================================================
* پاسخ غلط
* =================================================
*/
else {
option.addClass(
'wd-wrong'
);
message
.removeClass(
'wd-result-correct'
)
.addClass(
'wd-result-wrong'
)
.text(
'✕ پاسخ شما نادرست است.'
);
/*
* عمداً پاسخ صحیح را نمایش نمیدهیم.
*
* کاربر میتواند گزینه دیگری را انتخاب کند.
*/
}
});
} );