مدیاویکی:Common.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
(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').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').css({
'display': 'none'
});
test.find('.wd-test-answer').css({
'display': 'none'
});
});
}
/*
* آمادهسازی تستها
*/
$(document).ready(function () {
initWikidadTests();
});
/*
* کلیک روی یک گزینه
*/
$(document).on(
'click',
'.wd-test-options li',
function (event) {
event.preventDefault();
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');
/*
* پاک کردن وضعیت فقط در همین تست
*/
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');
var resultMessage =
test.find('.wd-test-result-message');
/*
* نمایش نتیجه همین تست
*/
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'
});
}
});
}
/*
* پاسخ و تحلیل فقط همین تست
*/
test.find('.wd-test-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('بستن متن');
}
}
);
})();