مدیاویکی:Common.js: تفاوت میان نسخهها
بدون خلاصۀ ویرایش برچسب: واگردانی دستی |
بدون خلاصۀ ویرایش |
||
| خط ۱۸: | خط ۱۸: | ||
/* | /* | ||
* فقط | * فقط گزینههایی که واقعاً متعلق به همین تست هستند | ||
*/ | */ | ||
test.find('.wd-test-options li').css({ | test.find('.wd-test-options li').filter(function () { | ||
return $(this).closest('.wd-test')[0] === test[0]; | |||
}).css({ | |||
'display': 'block', | 'display': 'block', | ||
'padding': '11px 14px', | 'padding': '11px 14px', | ||
| خط ۳۵: | خط ۳۷: | ||
* فقط نتیجه همین تست مخفی شود | * فقط نتیجه همین تست مخفی شود | ||
*/ | */ | ||
test.find('.wd-test-result').css({ | test.find('.wd-test-result').filter(function () { | ||
return $(this).closest('.wd-test')[0] === test[0]; | |||
}).css({ | |||
'display': 'none' | 'display': 'none' | ||
}); | }); | ||
test.find('.wd-test-answer').css({ | test.find('.wd-test-answer').filter(function () { | ||
return $(this).closest('.wd-test')[0] === test[0]; | |||
}).css({ | |||
'display': 'none' | 'display': 'none' | ||
}); | }); | ||
| خط ۶۵: | خط ۷۱: | ||
event.preventDefault(); | event.preventDefault(); | ||
event.stopPropagation(); | |||
var option = $(this); | var option = $(this); | ||
/* | /* | ||
* | * نزدیکترین تست | ||
*/ | */ | ||
var test = option.closest('.wd-test'); | var test = option.closest('.wd-test'); | ||
if (!test.length) { | if (!test.length) { | ||
return; | return; | ||
| خط ۱۳۳: | خط ۱۳۷: | ||
/* | /* | ||
* فقط گزینههای همین تست | * فقط گزینههای متعلق به همین تست | ||
*/ | */ | ||
var testOptions = | var testOptions = | ||
test.find('.wd-test-options li'); | test.find('.wd-test-options li').filter(function () { | ||
return $(this).closest('.wd-test')[0] === test[0]; | |||
}); | |||
| خط ۱۶۷: | خط ۱۷۳: | ||
/* | /* | ||
* فقط | * نتیجه فقط متعلق به همین تست | ||
*/ | */ | ||
var result = | var result = | ||
test.find('.wd-test-result'); | test.find('.wd-test-result').filter(function () { | ||
return $(this).closest('.wd-test')[0] === test[0]; | |||
}).first(); | |||
/* | |||
* پیام نتیجه فقط متعلق به همین تست | |||
*/ | |||
var resultMessage = | var resultMessage = | ||
result.find('.wd-test-result-message').first(); | |||
| خط ۲۷۶: | خط ۲۸۸: | ||
* پاسخ و تحلیل فقط همین تست | * پاسخ و تحلیل فقط همین تست | ||
*/ | */ | ||
var answer = | |||
result.find('.wd-test-answer').first(); | |||
answer.css({ | |||
'display': 'block', | 'display': 'block', | ||
'visibility': 'visible', | 'visibility': 'visible', | ||
نسخهٔ ۱۴ سپتامبر ۲۰۲۶، ساعت ۱۳:۳۰
(function () {
/* =========================================================
سیستم تستهای تعاملی ویکیداد
========================================================= */
function initWikidadTests() {
$('.wd-test').each(function () {
var test = $(this);
if (test.hasClass('wd-test-ready')) {
return;
}
test.addClass('wd-test-ready');
/*
* فقط گزینههایی که واقعاً متعلق به همین تست هستند
*/
test.find('.wd-test-options li').filter(function () {
return $(this).closest('.wd-test')[0] === test[0];
}).css({
'display': 'block',
'padding': '11px 14px',
'margin': '7px 0',
'border': '1px solid #dce5ea',
'border-radius': '8px',
'background': '#fff',
'cursor': 'pointer',
'transition': 'all .15s ease',
'line-height': '1.9'
});
/*
* فقط نتیجه همین تست مخفی شود
*/
test.find('.wd-test-result').filter(function () {
return $(this).closest('.wd-test')[0] === test[0];
}).css({
'display': 'none'
});
test.find('.wd-test-answer').filter(function () {
return $(this).closest('.wd-test')[0] === test[0];
}).css({
'display': 'none'
});
});
}
/*
* آمادهسازی تستها
*/
$(document).ready(function () {
initWikidadTests();
});
/*
* کلیک روی یک گزینه
*/
$(document).on(
'click',
'.wd-test-options li',
function (event) {
event.preventDefault();
event.stopPropagation();
var option = $(this);
/*
* نزدیکترین تست
*/
var test = option.closest('.wd-test');
if (!test.length) {
return;
}
/*
* اگر همین تست قبلاً پاسخ داده شده
*/
if (test.hasClass('wd-test-finished')) {
return;
}
/*
* متن گزینه انتخابشده
*/
var selectedText = $.trim(
option.text()
);
/*
* پاسخ صحیح فقط از همین تست
*/
var correctAnswer = $.trim(
test.attr('data-answer') || ''
);
/*
* استخراج حرف گزینه انتخابشده
*/
var selectedMatch = selectedText.match(
/^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
);
var selectedLetter = selectedMatch
? selectedMatch[1]
: selectedText.charAt(0);
/*
* استخراج حرف پاسخ صحیح
*/
var answerMatch = correctAnswer.match(
/^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
);
var answerLetter = answerMatch
? answerMatch[1]
: correctAnswer.charAt(0);
selectedLetter = $.trim(selectedLetter);
answerLetter = $.trim(answerLetter);
/*
* فقط گزینههای متعلق به همین تست
*/
var testOptions =
test.find('.wd-test-options li').filter(function () {
return $(this).closest('.wd-test')[0] === test[0];
});
/*
* پاک کردن وضعیت فقط در همین تست
*/
testOptions.css({
'background': '#fff',
'border-color': '#dce5ea',
'color': '',
'font-weight': ''
});
/*
* مشخص کردن گزینه انتخابشده
*/
option.css({
'background': '#f3f7fa',
'border-color': '#3978ad'
});
/*
* بررسی پاسخ
*/
var isCorrect =
selectedLetter === answerLetter;
/*
* نتیجه فقط متعلق به همین تست
*/
var result =
test.find('.wd-test-result').filter(function () {
return $(this).closest('.wd-test')[0] === test[0];
}).first();
/*
* پیام نتیجه فقط متعلق به همین تست
*/
var resultMessage =
result.find('.wd-test-result-message').first();
/*
* نمایش نتیجه همین تست
*/
result.css({
'display': 'block',
'visibility': 'visible',
'opacity': '1'
});
/*
* پاسخ صحیح
*/
if (isCorrect) {
option.css({
'background': '#edf8f5',
'border-color': '#168477',
'color': '#11695f',
'font-weight': 'bold'
});
resultMessage
.text('✓ پاسخ شما صحیح است.')
.css({
'display': 'block',
'visibility': 'visible',
'opacity': '1',
'color': '#168477',
'font-weight': 'bold'
});
}
/*
* پاسخ غلط
*/
else {
option.css({
'background': '#fff2f2',
'border-color': '#b44a4a',
'color': '#9b3838'
});
resultMessage
.text('✕ پاسخ شما نادرست است.')
.css({
'display': 'block',
'visibility': 'visible',
'opacity': '1',
'color': '#b44a4a',
'font-weight': 'bold'
});
/*
* پیدا کردن پاسخ صحیح
* فقط داخل همین تست
*/
testOptions.each(function () {
var item = $(this);
var itemText =
$.trim(item.text());
var itemMatch =
itemText.match(
/^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
);
var itemLetter = itemMatch
? itemMatch[1]
: itemText.charAt(0);
if (
$.trim(itemLetter) ===
answerLetter
) {
item.css({
'background': '#edf8f5',
'border-color': '#168477',
'color': '#11695f',
'font-weight': 'bold'
});
}
});
}
/*
* پاسخ و تحلیل فقط همین تست
*/
var answer =
result.find('.wd-test-answer').first();
answer.css({
'display': 'block',
'visibility': 'visible',
'opacity': '1'
});
/*
* قفل کردن فقط همین تست
*/
test.addClass('wd-test-finished');
}
);
/* =========================================================
مشاهده / بستن متن نسخه قانون
========================================================= */
$(document).on(
'click',
'.wd-version-toggle',
function () {
var button = $(this);
var card = button.closest(
'.wd-version-history-card'
);
var text = card.find(
'.wd-version-text'
);
var icon = button.find(
'.wd-version-toggle-icon'
);
var label = button.find(
'.wd-version-toggle-label'
);
if (text.is(':visible')) {
text.stop(true, true)
.slideUp(180);
icon.text('+');
label.text('مشاهده متن');
} else {
text.stop(true, true)
.slideDown(220);
icon.text('−');
label.text('بستن متن');
}
}
);
})();